**** BEGIN LOGGING AT Tue Aug 19 02:59:56 2008 Aug 19 03:11:48 yawn Aug 19 03:15:59 romainguy_: is the official tag for this release 0.9r1 or just 0.9? Aug 19 03:23:10 jasta: it's 0.9_r1. if there are point release type updates we'll rev release number Aug 19 03:23:34 i think the roadmap doc gets into the naming convention semantics a bit Aug 19 03:30:59 oh boy, diving into this old code is scary :) Aug 19 03:31:16 have fun ;) Aug 19 03:31:20 phew ;) Aug 19 03:31:28 there's lots more than just updating to M5 that i need to do :) Aug 19 03:31:39 there are quite a few new practices i have adopted. Aug 19 03:31:50 i was learning Java for Android, which was a big part of the initial sloppiness. Aug 19 03:33:52 now with the new sdk, you must rock! Aug 19 03:35:34 it is in the release notes. rocking: mandatory. Aug 19 03:38:25 mmm Aug 19 03:38:35 why wont my videoview play .3gp :( Aug 19 03:38:52 just gives generic error 08-19 03:36:50.965: DEBUG/VideoView(2000): Error: -1,0 Aug 19 03:42:05 anyone here know how to instruct a cd drive to spin backwards? Aug 19 03:42:41 look up SCSI and/or ATAPI commands. Aug 19 03:43:47 jasta: thanx :D Aug 19 03:44:14 jasta: will that help me read gamecube discs with a PC? Aug 19 03:44:17 i want to play mario kart Aug 19 03:44:53 aaaand now im getting 08-19 03:44:28.585: ERROR/MediaPlayer(2081): Error (-4,0) trying to play local file Aug 19 03:44:56 how cryptic lol Aug 19 03:50:33 xavd: I upgraded to eclipse 3.4.0. Eclipse does not crash but xml files will not display. Aug 19 03:53:01 Is there a version of Eclipse that is known to work with Android .9 on Leopard? Aug 19 03:54:15 dmoffett: with excel, your changing the tabs at the bottom to swtich over to raw xml view right? Aug 19 03:54:36 with 0.9 there are some gui-helpers that can hide the raw xml Aug 19 03:56:04 umdk1d3: thank you, let me check that out. Aug 19 03:56:48 awesome, i just wrote a cool deepcd alias in bash for working with stupid java source trees :) Aug 19 03:57:24 changes dir through all the mostly empty directories at once Aug 19 04:15:03 hmm Aug 19 04:15:08 about that 3.5" disk issue Aug 19 04:15:12 we should hack together a solution Aug 19 04:15:26 does sdio support floppys? Aug 19 04:15:58 * jasonchen would pay to see someone carry 3.5" disks along w/ their phone Aug 19 04:16:32 would totally be a battery drain Aug 19 04:17:47 5.25" disk support almost made the release Aug 19 04:17:59 but got cut at the last minute too Aug 19 04:18:43 Wasn't there a lot of discussion about a rotary dial? Aug 19 04:19:15 yeah, that and a telegraph interface Aug 19 04:21:12 theres the android killer app. rotary dialer Aug 19 04:21:17 =D Aug 19 04:21:21 i would buy it Aug 19 04:28:34 that may not be such a bad idea? baby boomers and what not? Aug 19 04:38:01 * michaelnovakjr yawns Aug 19 04:42:59 hmm, am i missing something. PhoneSubInfoManager isn't documented? Aug 19 04:44:47 michaelnovakjr: welcome to jasta's world Aug 19 04:44:58 :) Aug 19 04:45:01 my world? Aug 19 04:45:06 yawning ;) Aug 19 04:45:21 oh, its late here :) Aug 19 04:45:33 i see jasta yawn more times in a day than I piss Aug 19 04:45:51 i'd hope so, otherwise you'd have a bladder problem :) Aug 19 04:46:00 heh Aug 19 04:47:39 updating my project to 0.9r1 sucks Aug 19 04:47:39 :) Aug 19 04:47:55 forces me to look at all this hideous code. i think the next couple of weeks should go into major rewrites more than anything else Aug 19 04:48:29 its justified jasta Aug 19 04:54:41 migration took 5 mins ;) Aug 19 04:54:51 you don't count :) Aug 19 04:54:57 lol Aug 19 04:55:33 do you have screenshots? Aug 19 05:01:44 guess not :) Aug 19 05:33:20 re Aug 19 05:54:00 hmm, sqliteopenhelper changed a lot Aug 19 05:55:32 oh nm no it didn't Aug 19 06:07:02 really, i don't get this PhoneSubInfoManager thing? Aug 19 06:07:17 did someone forget to include it? or am i supposed to use TelephonyManager somehow? Aug 19 06:07:33 what are you talking abotu? Aug 19 06:07:35 about Aug 19 06:07:56 You can now access these phone/subscriber properties through the new PhoneSubInfoManager, using the IPhoneSubInfo interface. Aug 19 06:08:02 quoted from changes-overview Aug 19 06:08:25 but that class doesn't exist. There is TelephonyManager that has getDeviceId(), but it has no public constructor and has no static methods. So I don't know how to get a handle to it. Aug 19 06:08:37 TelephonyManager.getDefault() Aug 19 06:08:50 i don't show that in the documentation. Aug 19 06:10:50 yeah, probably a mistak Aug 19 06:10:51 mistake Aug 19 06:10:53 dammit Aug 19 06:11:47 actually Aug 19 06:11:57 Can I install Android OS on Sonry Ericsson K610i? Aug 19 06:12:01 sony* Aug 19 06:13:21 jasta: the right way to do it is: (TelephonyManager)getSystemService(TELEPHONY_SERVICE) Aug 19 06:13:55 with TELEPHONY_SERVICE="phone" Aug 19 06:14:29 good morning guys Aug 19 06:14:31 everyone needing multipart messages can ask me I got it working right now. :-) Aug 19 06:14:39 jasta: is there a reason you want TelephonyMangaer and not the more abstract ConnectivityManager? Aug 19 06:15:00 Yes, I need the device ID. Aug 19 06:15:24 I understnad the IMEI to be a good unique key to separate multiple phones. Aug 19 06:17:34 ah, right. in that case, what romainguy__ said :-) Aug 19 06:20:47 also, you might need the android.permission.READ_OWNER_DATA permission to get the IMEI Aug 19 06:21:09 ok, your changes-overview doc is all wrong on this topic. Aug 19 06:22:21 yeah, i was just talking to morrildl about that Aug 19 06:22:23 it was probably an explanation of the internal implementation :( Aug 19 06:22:31 we'll check into it more in the morning Aug 19 06:22:35 so... Aug 19 06:22:54 i assume you guys worked on the custom parcelable stuff and all the AIDL troubles with that? Aug 19 06:23:10 i see in the new docs that at least the blurb about it was not removed. Aug 19 06:24:52 and so far in my tests, it does not work. Aug 19 06:25:22 back to modifying the global framework.aidl in order to build my project? Aug 19 06:27:18 i haven't played with the AIDL stuff myself Aug 19 06:27:24 so i can't really say Aug 19 06:27:47 but if you spot problems, please file them (or follow up on bugs that you've arleady filed) Aug 19 06:28:00 look at the "Pass by value Parameters using Parcelables" section in the Android IDL docs. Aug 19 06:28:17 This was a known bug back in M3, and carried through to M5, and now surprisingly to 0.9. Aug 19 06:30:36 hmmm, i'll have to ask our tech writers about the status of this page in the morning. Aug 19 06:30:47 i just teste dit. Aug 19 06:31:02 it still applies. Aug 19 06:31:11 what's the bug? Aug 19 06:31:13 that's a bad bug to be in 1.0. Aug 19 06:31:25 romainguy__: you can't create custom parcelables and still use the Eclipse plugin to build. Aug 19 06:31:34 ah Aug 19 06:31:42 because the .aidl "header file" that describes it will be compiled, which won't work. Aug 19 06:31:50 tell that to xavd :) Aug 19 06:32:08 the work around i have used for M5 is to modify the global framework.aidl but i'm a bit disappointed this didn't get attention. Aug 19 06:33:14 because we had thousands of bugs that needed as much attention Aug 19 06:33:26 also, the example code there is old and wouldn't build Aug 19 06:33:27 do you have a bug filed in the tracker for this? Aug 19 06:33:47 romainguy__: i just filed one, but i didn't originally because it was clearly called out as a known bug Aug 19 06:37:39 parcelable has also seemed to change in hard-to-guess ways but isnt part of the changes overview Aug 19 06:38:08 what changed? Aug 19 06:38:26 well, it seems that readFromParcel was removed, but I think I can understand how that should be handled. Aug 19 06:38:49 writeToParcel was seemingly changed to take an extra int param that can be flagged as PARCELABLE_WRITE_RETURN_VALUE, but no clear instructions on what that means? Aug 19 06:42:20 weren't we using a Creator already in m5? Aug 19 06:42:40 you were, but i swear i thought you also required a redundant readFromParcel, but that's not the part that has confused me. Aug 19 06:43:02 PARCELABLE_WRITE_RETURN_VALUE doesn't seem to tell us anything. even the "typical implementation" as described in android.os.Parcelable doesn't use it. Aug 19 06:43:43 well, the documentaiton says: "Some implementations Aug 19 06:43:43 * may want to release resources at this point." Aug 19 06:43:55 ahh Aug 19 06:49:36 jasonchen: seems to be that i need READ_PHONE_STATE permission (too?) Aug 19 06:55:52 hehe, unknown socket error -1 when you don't request INTERNET permission Aug 19 06:56:46 http://www.engadgetmobile.com/2008/08/18/video-android-sdk-v0-9-hits-the-internet-looking-almost-ready-f/# <- Last week it was dead and now it is ready for primetime :D Aug 19 06:57:05 news web sites have no shame :) Aug 19 06:57:20 :D Aug 19 06:57:47 On another website I read today that with the new SDK it will be the hardest competitor for the iPhone :P Aug 19 06:57:51 alright, five-client works ;) Aug 19 06:58:22 Nice jasta. I'm feared of porting :/. (have ported now the whole Multipart Messages) Aug 19 06:59:26 it's mostly just search/replace. it's not been hard. Aug 19 06:59:41 although i am scared that now there is TONS of functionality in my app that can be gutted Aug 19 06:59:45 Really ? Has a lot changed in the services ? Aug 19 06:59:49 but i'll never know until i dig thoroughly into the docs ;) Aug 19 06:59:56 no, not really at all. Aug 19 07:00:18 Oh well I'm testing that out later on on a Virtual Machine. Aug 19 07:00:56 But now I have to get some breakfast. :-) Aug 19 07:01:42 i'm actually mostly happy with it. Aug 19 07:01:47 romainguy has to confirm that nothing happens while breakfast. Yesterday we had barbecue in the evening and after it the SDK was out. :-) Aug 19 07:01:56 i have a lot of work to do just updating to new things i learned from M5 (nothing to do with 0.9) Aug 19 07:02:07 but there are some really important ones to me that didn't make it to 0.9 *sigh* Aug 19 07:02:16 :-) Aug 19 07:02:41 the MediaPlayer problems Five had are still all there. all the kludgey work around will have to remain. Aug 19 07:02:49 rather, not romain, but be rewritten even kludgier :) Aug 19 07:02:54 not remain* Aug 19 07:03:12 and quite probably so inefficient that it will just fail entirely :( Aug 19 07:07:03 romainguy__: is android:gravity="center_horizontal" a straight replacement for android:textAlign="center"? Aug 19 07:07:13 yep Aug 19 07:07:19 k, thx Aug 19 07:07:28 will it center text with \n's though? or just block-center the widget? Aug 19 07:07:30 we used to have textAlign for horizontal placement and gravity for vertical placement Aug 19 07:07:33 it was kinda silly Aug 19 07:07:52 umdk1d3: android:gravity centers the content Aug 19 07:07:57 oh cool Aug 19 07:08:02 now everything is done with gravity ? Aug 19 07:08:08 in TextView yes Aug 19 07:08:12 great thx. Aug 19 07:08:33 so my question for tonight is: how coarse is ACCURACY_COARSE? ;) Aug 19 07:08:46 the answer is: coarse Aug 19 07:08:51 and now, bed time for me Aug 19 07:08:52 lol Aug 19 07:08:54 good day/night all Aug 19 07:08:55 haha Aug 19 07:09:21 hi what is the situation with android web market, where I can sell mz application ? Aug 19 07:09:37 Rajec: still no definite word yet Aug 19 07:09:51 also remember that .apks can be installed form the web browser Aug 19 07:10:02 if you want an easy way to share your apps right now Aug 19 07:10:11 true, but that means you need to roll your own micropayment system Aug 19 07:10:12 really? Aug 19 07:10:25 ooh /me wonders hwo it handles permission granting Aug 19 07:10:27 umdk1d3: sure, I'm just saying that's one option you have right now Aug 19 07:10:31 umdk1d3: no one will buy an app that doesn't load onto a real phone :) Aug 19 07:10:38 jasta: true lol Aug 19 07:10:41 umdk1d3: it just goes through the package manager Aug 19 07:10:51 we have a package manager? =D Aug 19 07:11:00 * umdk1d3 goes to try Aug 19 07:11:02 what do you think adb sync/install do? Aug 19 07:11:17 the package manager is a service btw :) Aug 19 07:11:18 well, thats emulator related tho Aug 19 07:11:23 well, adb install copies a file to /data/app ;) Aug 19 07:11:31 it's literally the same as adb push to /data/app hehe Aug 19 07:11:34 and then what happens? Aug 19 07:11:36 you have inotify watching ;) Aug 19 07:11:45 you think that's all it does? Aug 19 07:12:00 no, i'm just pointing how many layers of abstraction you were off target :) Aug 19 07:12:09 uh? Aug 19 07:12:10 well it unpacks the .dex to cache it Aug 19 07:12:10 pointing out* Aug 19 07:12:54 hi what is the situation with android web market, where I can sell mz application ? Aug 19 07:13:04 Rajec: no information has been revealed yet. Aug 19 07:13:06 jasta: then you have a poor understanding of adb install :) Aug 19 07:13:11 anyway Aug 19 07:13:14 romainguy: I don't think that I do at all. Aug 19 07:13:14 g'night Aug 19 07:13:18 sure jasta Aug 19 07:13:36 What is so different about adb install that adb push to /data/app doesn't do? Aug 19 07:13:48 it probably fires events to the home screen Aug 19 07:13:56 no, the inotify service does that Aug 19 07:13:59 (through the package manager) Aug 19 07:14:23 if you all remember, i wrote an app that installs apps by copying them from the web to /data/app. Aug 19 07:14:30 and nothing more Aug 19 07:15:00 yea one thing ive noticed about 0.9 is its a lot more locked down Aug 19 07:15:05 no more /tmp :/ Aug 19 07:15:12 if adb install does anything at all not handled by just copying files there then it is simply an optimization. Aug 19 07:16:12 or maybe they changed all this in 0.9 for some reason? Aug 19 07:16:21 jasta: It wont be like with Iphone where you can have only one oficial store no ? Aug 19 07:16:25 but in M5 there was an inotify service glueing it all together Aug 19 07:16:37 Rajec: No information has been revealed, period. Aug 19 07:17:40 jasta: it should be writtend in sdk lincece or something no? Aug 19 07:18:15 Rajec: Well, not if there are other distribution mechanisms. Aug 19 07:18:28 In Android's case, I doubt that a "store" will be the only way to distribute apps. Aug 19 07:18:41 For example, on Windows Mobile you can just download them from the web browser to install them andt here's no signing or any junk like that. Aug 19 07:19:02 And that's basically the only way to distribute your apps for WM. Android will probably support that, in addition to the store. Aug 19 07:19:53 as I said, you can just point the Browser to the .apk Aug 19 07:20:02 also, toggling your application in by clicking the HOME button in morse code in the bootloader Aug 19 07:20:07 "Cannot download. The content being downloaded is not supported on the phone." <-- messsage when downloading an APK from web Aug 19 07:20:20 doh Aug 19 07:20:22 umdk1d3: check out Settings / Applications Aug 19 07:20:22 stupid SDK Aug 19 07:20:50 "Unsupported action: That action is not currently supported." <-- when trying Settings :P Aug 19 07:20:55 hehe Aug 19 07:20:58 oh in browser settings? Aug 19 07:21:22 or is that panel not in the SDK Aug 19 07:21:32 swetland: apparently it's not Aug 19 07:21:45 romain: doh! Aug 19 07:21:50 it's the one to allow unknown sources? Aug 19 07:21:51 nope, no "Settings" or "Applications" :/ Aug 19 07:22:06 yea this was just an APK generated by eclipse Aug 19 07:22:08 umdk1d3: I mean the settings menu from home Aug 19 07:22:10 which is self-signed Aug 19 07:22:24 yea, that error above is what settings from homescreen says (under menu button) Aug 19 07:24:13 * jasta is not sure about this new setResult() API. Aug 19 07:24:22 should i just send back the same action that I was given? Aug 19 07:24:34 the NotePad application seems to treat the action as just some arbitrary string like setResult() was before. Aug 19 07:24:39 only if you have a result Aug 19 07:24:42 but that doesn't seem quite right, especially when i'm passing back a URI string Aug 19 07:25:07 my app used to call setResult(RESULT_OK, uri.toString()); so a good replacement for that seems like setResult(RESULT_OK, new Intent(originalAction, uri)); right? Aug 19 07:25:21 you don't care about the action in that case Aug 19 07:25:30 the Intent is just a container for your data Aug 19 07:25:42 so (new Intent()).setData(uri)? Aug 19 07:25:54 yep Aug 19 07:27:43 * umdk1d3 jumps up and down Aug 19 07:27:52 <3 sdk Aug 19 07:29:55 i don't even remember writing half the code i'm updating :) Aug 19 07:30:16 i must have been in an intoxicated daze, rushing to get my app ready for ADC 1 :) Aug 19 07:31:18 are there lots of changes Aug 19 07:31:30 does the gui look different Aug 19 07:31:30 yes Aug 19 07:31:36 (some) Aug 19 07:31:43 a lot of polish, that's for sure. Aug 19 07:31:56 romainguy must of been busy Aug 19 07:32:11 duey: there are good overviews of changes onlin Aug 19 07:32:13 that is what interns are for. they make sure you can see your reflection in the pixels Aug 19 07:32:26 sooooo Aug 19 07:32:26 Home certainly kept me busy on top of the UI framework stuff Aug 19 07:32:33 what the hell happened to TabHost.TabSpec? Aug 19 07:32:43 swetland: last I checked interns were writing cryptic shell tools :p Aug 19 07:32:47 setIndicator became much less general? Aug 19 07:33:01 * duey notes never to be an intern at google Aug 19 07:33:06 romain: kernel interns! don't you guys have interns too? Aug 19 07:33:13 kernel..? Aug 19 07:33:16 swetland: I'm the only one I know of Aug 19 07:33:19 sounds like build scripts Aug 19 07:33:22 or rather, I was the only one I know of Aug 19 07:33:34 duey: lots of screencaps here http://www.anddev.org/fresh_android_sdk_released_sdk_v09_r1-t2707.html Aug 19 07:33:57 I would hate to be the person writing build scripts Aug 19 07:34:02 I can't think of anything worse Aug 19 07:34:11 swetland: apparently you write build scripts for a living :)) Aug 19 07:34:14 build scripts and installers Aug 19 07:34:20 romain: it's a hard life being a kernel engineer Aug 19 07:34:32 I'll hand you that one Aug 19 07:34:52 is kernel engineer a thancy name for build script writer? Aug 19 07:34:59 it's like the life of a UI toolkit engineer: hated by kernel engineers for wasting resources, hated by app developers because you don't waste enough resources Aug 19 07:35:07 duey: not in my experience ^^ Aug 19 07:35:08 lol Aug 19 07:35:24 I really like a range of tasks at work Aug 19 07:35:31 * ligi is starting 0.9_beta first time now - hoping my old adc apk will work Aug 19 07:35:31 I work on heaps of different things Aug 19 07:35:36 from edis to websites Aug 19 07:35:55 ligi: not a chance :) at least not without recompiling Aug 19 07:36:52 wow, lot of traffic in here ;) Aug 19 07:36:55 romainguy__: any code that calls setKeepANimations() can just be removed now? Aug 19 07:37:18 I don't remember Aug 19 07:37:25 whatever the docs/changelogs say Aug 19 07:37:28 the docs say the method is gone Aug 19 07:37:30 ligi: sadly i think there is very little chance of binary compatability with an older apk Aug 19 07:37:38 but no mentio nof what to do about that? :) Aug 19 07:38:01 then don't bother Aug 19 07:38:25 romainguy__: umdk1d3 ok ur right INSTALL_PARSE_FAILED_MANIFEST_MALFORMED# Aug 19 07:38:28 my memories of the changes I made in the animation APIs are very fuzy Aug 19 07:39:07 good that i stopped developing 4 android till this new sdk Aug 19 07:39:53 anyone knows if bluetooth api is working now? Aug 19 07:40:12 hmm multi-lined app names show okay in the large app list, but are trimmed to only one line with "..."s when dropped as shortcuts onto the home screen Aug 19 07:40:19 ligi: actually bluetooth was removed lol :P Aug 19 07:40:29 umdk1d3: removed? Aug 19 07:40:35 no Aug 19 07:40:35 yep, its in the release notes Aug 19 07:40:39 the public API was Aug 19 07:40:45 oh, true Aug 19 07:40:48 the system still supports bluetooth Aug 19 07:40:51 there's a huge difference Aug 19 07:41:00 system=firmware=not us developers though, right? Aug 19 07:41:39 firmware makes me think about code for microcontrollers in toasters ^^ Aug 19 07:41:45 I much prefer systems Aug 19 07:42:03 umdk1d3: hmm multi-lined app names show okay in the large app list, but are trimmed to only one line with "..."s when dropped as shortcuts onto the home screen << yes Aug 19 07:42:06 well, its FOTA right? :P Aug 19 07:42:20 FOTA=firmware overtheair Aug 19 07:42:39 romainguy__: oh well, thats a bummer :/ Aug 19 07:42:46 not too big of a showstopper tho Aug 19 07:43:07 i suppose users will be looking for icons anyway Aug 19 07:43:07 whoo, almost got five-music compiled :) Aug 19 07:43:21 this has taken me all damn night :) Aug 19 07:43:22 umdk1d3: it's a matter of screen real estate Aug 19 07:43:42 dam 31 errors when recompiling with new SDK Aug 19 07:43:52 just 31?! Aug 19 07:43:53 romainguy__: but the desktop icons take up the same space as those in the full-app-list Aug 19 07:44:09 including the app text name Aug 19 07:44:21 i suppose it keeps it looking unclutters tho Aug 19 07:44:36 umdk1d3: believe me, I worked days and nights on this application :) Aug 19 07:44:39 prevents it from being Windows Mobile. Aug 19 07:44:42 :P Aug 19 07:44:49 kk :) Aug 19 07:45:08 romainguy__: its sexy, believe me :) Aug 19 07:45:20 glad you like it Aug 19 07:45:27 kudos to the designers for the original idea Aug 19 07:46:05 hehe Aug 19 07:46:31 images class has no height() with() - are these attributes now - no more methods? Aug 19 07:46:38 +d Aug 19 07:47:12 what class? Aug 19 07:47:20 android.graphics.Bitmap Aug 19 07:47:32 getWidth() and getHeight() Aug 19 07:47:42 romainguy__: thanx a lot Aug 19 07:47:57 that type of change was made all over, ligi. Aug 19 07:48:07 jasta: dam Aug 19 07:48:14 getters without "get" prefixing them had it added. Aug 19 07:48:30 * jasta scratches his head Aug 19 07:48:38 i apparently used some method i have no idea what it did and it's gone now Aug 19 07:48:42 is there a regex to fix this ^^-) Aug 19 07:48:44 getVirtualChildCount? what? Aug 19 07:48:53 why are you using this? :) Aug 19 07:48:59 i have absolutely no idea Aug 19 07:49:03 lol Aug 19 07:49:06 maybe i was just tired and meant getChildCount? Aug 19 07:49:07 this is used in LinearLayout but it's for support of TableLayout Aug 19 07:49:18 nope, i also use getVirtualChildAt? *confused* Aug 19 07:49:19 it will return the same value unless you have a TableLayout involved Aug 19 07:49:51 so it's safe to translate this to getChild*? Aug 19 07:50:25 yep Aug 19 07:50:41 it's used by TableLayout to support empty/spanned cells Aug 19 07:51:00 i made a lot of stabs in the dark with M3. that could be what that code was leftover from Aug 19 07:52:58 http://www.s4g.net/sites/android/newsdk_v0_9_r1/11.jpg Aug 19 07:52:59 hmm, Cursor#moveTo(int) is gone? Aug 19 07:53:03 no wonder handycalc didnt win! Aug 19 07:53:07 5 errors to go Aug 19 07:53:29 duey: there is a functional graphing calculator and solver. Aug 19 07:53:39 i dont remember what it wa scalled, but it was awesome Aug 19 07:53:55 ? Aug 19 07:53:56 duey: this calc app wasn't even written at the time of the ADC I think Aug 19 07:54:25 oh moveToPosition, duh Aug 19 07:55:31 one more module left to go, then it compiles! :) Aug 19 07:56:11 why do all the pics have (c) anddev on them Aug 19 07:56:24 duey: because he thinks that's how copyright works. Aug 19 07:56:25 does it really matter if someone copies some screenshots Aug 19 07:56:44 he doesn't own the copyright to those anyway, and the label he affixed is simply wrong. Aug 19 07:57:09 if i make the exact same screenshot i must be breaking his copyright Aug 19 07:57:10 onoesz Aug 19 07:57:48 i wonder how long it took to put that text on all the images Aug 19 07:58:04 he might have used ImageMagick Aug 19 07:58:12 or worse yet, some custom tool. Aug 19 07:58:13 I would hope so lol Aug 19 07:58:22 honestly, i am not sure which he would have done. Aug 19 07:58:23 or photoshop for each photo Aug 19 07:58:50 there are some draganddrop water mark tools on osx Aug 19 07:58:54 which are quite nice Aug 19 07:59:33 romainguy__: ShapeDrawable#setShader is gone? do i need to use the factory now? Aug 19 07:59:40 yes Aug 19 08:00:04 hmm, so all javax.sound.* got wiped? Aug 19 08:05:35 is there any free tool to compare two files (text) and display the changes? Aug 19 08:05:46 i dont know how to google that, is there any keyword? Aug 19 08:06:04 romainguy__: ContextMenuInfo used to have an id member I could access? Aug 19 08:06:13 alex2308: lol, diff. Aug 19 08:06:23 alex2308: diff - but its a *nix tool Aug 19 08:06:29 +windows Aug 19 08:06:41 and its prolly already asked, but adb push something /system doesnt work anymore. any chance to mount this fs rw? Aug 19 08:06:58 adb remount Aug 19 08:07:23 anyone has an example of the usage of this BitmapConfig thing? Aug 19 08:07:25 but on production hardware /system is going to be RO, so it's probably worth getting used to that Aug 19 08:08:51 swetland: i know, there is no way to deplay this. but its only for my thesis and i gonna write about this problem aswell ;) Aug 19 08:09:10 what's your thesis? Aug 19 08:09:29 ligi: sure, what's the context? Aug 19 08:09:39 romainguy__ voip on android Aug 19 08:10:04 more exactly, testing voip on android Aug 19 08:10:04 romainguy__: my old createBitmap fails Bitmap.createBitmap(getWidth(),lcd_lines.length*lcd_tiles_img.getHeight()+100,false); Aug 19 08:10:22 romainguy__: the new version wanna have a BitmapConfig param Aug 19 08:10:39 what's the problem with using BitmapConfig? Aug 19 08:10:40 ligi: there are some static values taht work well iirc Aug 19 08:10:49 umdk1d3: null? Aug 19 08:10:52 no Aug 19 08:10:52 ^^ Aug 19 08:10:56 it's an enum Aug 19 08:11:02 ah Aug 19 08:11:14 is your image opaque or translucent? Aug 19 08:11:24 yes Aug 19 08:11:30 opaque Aug 19 08:11:41 then you probably want BitmapConfig.RGB_565 Aug 19 08:11:51 romainguy__: thanx a lot Aug 19 08:11:54 *PHEW* Aug 19 08:11:57 five fully builds now Aug 19 08:11:59 time for bed Aug 19 08:12:11 jasta: nice! good n8 Aug 19 08:12:12 ligi: if it needs transparency, you might want to look at ARGB_4444 Aug 19 08:12:17 no no Aug 19 08:12:23 ARGB_8888 Aug 19 08:12:28 aha Aug 19 08:12:34 don't use ARGB_4444 unless you know what you're doing Aug 19 08:12:45 well its just 4-bits-per channel right? Aug 19 08:12:48 otherwise you'll be all complainy about rendering issues :) Aug 19 08:12:49 yes Aug 19 08:12:52 lol Aug 19 08:12:54 and 4 bits is not much Aug 19 08:13:02 hm true Aug 19 08:17:13 Caused by: java.lang.SecurityException: Not allowed to bind to service...? Aug 19 08:17:14 hmm? Aug 19 08:17:36 trying to bind to five-client's service from five-music? some sort of permission relationship i have to set up here? Aug 19 08:17:58 security increased a lot in the current sdk Aug 19 08:18:21 alex2308: will be greater on actual devices Aug 19 08:18:28 hope so Aug 19 08:18:30 romainguy__: any thoughts? Aug 19 08:18:37 jasta: none, I never wrote a service Aug 19 08:18:55 are they in the same process? Aug 19 08:19:12 no, not even in the same APK Aug 19 08:19:35 I guess you do need some permission then Aug 19 08:19:43 or they need to use the same user id Aug 19 08:20:01 i dont want them to use the same user id. the whole point is that five can be extended by other folks than me, in other source trees than mine. Aug 19 08:20:52 muhaaaahaa: DUBwise is compiled now with 0.9 beta Aug 19 08:21:02 thanx 4 all your hints Aug 19 08:21:33 dam Aug 19 08:21:38 compiled but INSTALL_PARSE_FAILED_NO_CERTIFICATES Aug 19 08:21:46 romainguy__: looks like the security docs were updated. *reading* Aug 19 08:22:04 ligi: read the installing blurb about keytool Aug 19 08:22:20 jasta: jeah i will Aug 19 08:22:43 37 Errors <3 Aug 19 08:22:48 jasta: hmm, damn, looks like i need to read that aswell Aug 19 08:22:58 romainguy__: looks like i must define an arbitrary permission that is required to use the service. Aug 19 08:23:01 which seems fine i guess Aug 19 08:23:17 it's pretty easy to declare a permission Aug 19 08:25:25 android.permission.SPEND_NIGHT_AT_FRIENDS_HOUSE lol Aug 19 08:25:49 don't use android.permission, use your own package name :p Aug 19 08:26:20 edu.highschool.student.SPEND_NIGHT_AT_FRIENDS_HOUSE there we g Aug 19 08:26:38 i wonder how this will be enforced on Android. users tend to not give a shit about these types of dialogs. Aug 19 08:28:08 well, this is probably why /system is mounted ro :P Aug 19 08:28:21 let them screw up their phone, factory defaults are just a button click away :) Aug 19 08:28:21 remount Aug 19 08:28:33 alex2308: what? Aug 19 08:28:41 hehe jk Aug 19 08:36:51 Access restriction: The type IPhoneSubInfo is not accessible due to restriction on required library E:\ANDROID\android-sdk-windows-0.9_beta\android.jar Aug 19 08:36:54 :( Aug 19 08:37:01 alex2308: you need to declare READ_PHONE_ something Aug 19 08:37:02 hang on Aug 19 08:37:15 Aug 19 08:37:17 Aug 19 08:37:25 alex2308: no, the changes-overview doc is totally wrong. Aug 19 08:37:54 the documentation is totally crap imho Aug 19 08:38:06 i wouldn't say it's totally crap, but it certainly hasn't been fully updated Aug 19 08:39:21 still cant access phone data Aug 19 08:39:40 well, i already did exactly this to access IMEI. Aug 19 08:39:44 with getDeviceId() Aug 19 08:40:36 com.android.internal.telephony.IPhoneSubInfo.getDeviceId() ? Aug 19 08:41:00 no, use getSystemService(TELEPHONY_SERVICE).getDeviceId() Aug 19 08:41:16 err, of course you must cast the result of getSystemService to TelephonyManager Aug 19 08:43:29 hehe, i still like those IPhone interfaces ;) Aug 19 08:44:24 ;) Aug 19 08:44:25 uhm, what the hell Aug 19 08:44:26 android.content.Context.TELEPHONY_SERVIC Aug 19 08:45:51 sigh, i giv eup, i can't make this permission crud work Aug 19 08:46:08 jasta: you have to, i need it aswell! Aug 19 08:46:21 it tells me i am denied a permission that i requested Aug 19 08:46:31 but the UI gave me no chance to do anything useful Aug 19 08:46:43 and the logs don't seem to suggest anything Aug 19 08:49:25 hm, they removed the possibility to set IMEI Aug 19 08:49:38 as they probably should :) Aug 19 08:49:52 if you want to go around changing your IMEI, you'd better learn how to open the phone up a bit :) Aug 19 08:49:55 but i had a bogusdatacreater class for testing Aug 19 08:50:26 i changed the imei on my nokia (was stolen), isnt hard Aug 19 08:58:49 ok, night time Aug 19 08:58:53 hopefully someone figures out this permission issue :) Aug 19 08:59:00 now where 0.9 iss there - I WANT A ANDROID-PHONE Aug 19 08:59:11 jasta: sleep well Aug 19 09:02:29 which permission issue jasta? Aug 19 09:02:48 binding to a remote service Aug 19 09:03:15 10:17:13 < fn~jasta> Caused by: java.lang.SecurityException: Not allowed to bind to service...? Aug 19 09:05:26 i have some permission issues, too. will see if i find a way round Aug 19 09:05:31 btw ty jasta Aug 19 09:05:39 but still 29 errors hehe Aug 19 09:09:29 im error free, only have to sign all, and prolly fix the same permission issue as jasta Aug 19 09:12:15 most of them are httpclient related Aug 19 09:15:41 did someone already found out how to use the PixelConverter? Aug 19 09:15:48 its only package visible Aug 19 09:23:58 In startService() kann ja kein Bundle mehr übergeben werden. Soll die Ãœbergabe von Inhalten nun über die Extras des Intents geschehen ? Aug 19 09:25:57 ka Aug 19 09:26:39 oh lol I have to translate that :D Aug 19 09:27:26 In startService you cant submit a Bundle anymore. Do I have imitatet that funcionality using the Intent for starting the Service and his extras? Aug 19 09:27:59 And why is there a bundle available in the onStart method of the service ? Aug 19 09:34:00 "Various parts of the API cleaned up to use Intents instead of Bundles; Intent itself improved to reduce the need for separate payload Bundles." Aug 19 09:39:10 ah yeah it is working now Aug 19 09:39:11 :) Aug 19 09:52:47 oh, seems like my activity could startup the remote service without problems Aug 19 09:56:59 only my helper activity to only startup the service gets a permission denied. hmmm Aug 19 10:00:15 and those permissions really need doku: http://code.google.com/android/reference/android/Manifest.permission.html Aug 19 10:11:21 Hmm the autogenerated file from the service AIDL shows a lot of errors. I've tried to delete it but it doesnt get recreated? What am I doing wrong? Aug 19 10:37:11 the new SDK sucks. i want a newer SDK! ;) Aug 19 10:38:04 you suck. i want blackjack and hookers! ;) Aug 19 10:38:22 in fact Aug 19 10:38:27 forget the blackjack Aug 19 10:39:19 will there be a blackjack app for android? ^^ Aug 19 10:42:46 whats the right thing to get the current location? (it has been removed but I dont see the alternative. I dont want to get the location all the time) Aug 19 10:43:54 it looks like we have to use getLastKnownLocation Aug 19 10:44:08 i have the same problem Aug 19 10:45:24 oh but thats kind of sucking. Hmm ok. Aug 19 10:46:57 http://www.anddev.org/pixelconverter-t2713.html Aug 19 10:47:00 anyone? Aug 19 10:58:41 Well and now it would be interesting how to get the I.java file created Aug 19 11:00:23 anno: problems with aidl? i deleted the old .java files and those were regenerated. Aug 19 11:00:32 just like with old sdk Aug 19 11:00:38 Yeah I deleted it as well Aug 19 11:00:46 but it doesnt get regenerated Aug 19 11:00:56 you can run aidl on the shell Aug 19 11:01:01 maybe there is an error Aug 19 11:01:30 ah well ok. Shell and windows I love it. I'm in the virtual machine right now for testing the port :) Aug 19 11:04:00 port of? Aug 19 11:04:28 hmm, but damn, i get "unknown error" when running new DatagramSocket(port); Aug 19 11:09:12 tric: well port of the m5 app Aug 19 11:09:27 And I'm getting crazy about the not generated java file :D Aug 19 11:10:50 there is a commandline in windows aswell tu run aidl tool Aug 19 11:11:03 or try to restart/refresh eclipse Aug 19 11:12:06 hehe. i want doku about all those android.permission Aug 19 11:17:18 ahh, udp socket need permission.INTERNET aswell. maybe this shold be split up. you need the same permission for connect and opening socket. Aug 19 11:20:33 and the next security exception. cool Aug 19 11:29:07 the new version throws an INSTALL_FAILED_ALREADY_EXISTS when installing again Aug 19 11:29:15 m5 did this well Aug 19 11:29:56 and google has no hint on INSTALL_FAILED_ALREADY_EXISTS Aug 19 11:31:34 ah -r Aug 19 11:31:35 k Aug 19 11:34:34 Now I'm getting the next error. After having restarted my project I'm getting "R can not be resolved" in every activity. I've changed nothing :/ Aug 19 11:35:04 add the correct R class to the imports Aug 19 11:37:01 how can i completely wipe the emulator? Aug 19 11:37:25 wipe? the user data? Aug 19 11:38:22 oh, funny, i get a permission denied when starting a activity with a empty , adding a dummy filter works Aug 19 11:39:07 alex: completly should be rm -rf ~/.android; rm -rf android_sdk Aug 19 11:43:52 ok. anyone successfully ported notifications? i get exceptions calling NotificationManager.notifiy Aug 19 11:51:02 oh it is a dream the whole elcipse plugin starts doing its job :/ Aug 19 11:51:15 -starts + stops Aug 19 11:51:32 it's working again with 0.9 ;-) http://ligi-tec.blogspot.com/2008/08/dubwise-4-android-sdk-09-r1.html Aug 19 11:51:38 thanx for all hints here Aug 19 11:54:49 i cant get my sms receiver to work Aug 19 11:54:56 anyone else? Aug 19 12:06:32 What can I do except creating a new project and putting the sources in it ? It is not recreating the R file anymore. :/ And I dont really know why. I dont want to do that by hand all the time. Aug 19 12:07:09 right click on project, android->fix project properties. no idea whats that for, but... Aug 19 12:09:06 ok, looks like all but notifications are working now again. nice Aug 19 12:10:38 tric: yeah that thingh crashed the whole project :) Aug 19 12:12:39 hehe Aug 19 12:18:41 ooh after the third attempt the AIDL java file got created Aug 19 12:18:49 now lets hope to get R back as well :/ Aug 19 12:19:05 For all those germans - SPON once again: http://www.spiegel.de/netzwelt/mobil/0,1518,572913,00.html Aug 19 12:21:02 spykid: danke ;-) Aug 19 12:21:34 danke (aber schon per rss aufs handy gekriegt) ;) Aug 19 12:21:39 exiting -> https://android.clients.google.com/checkin Aug 19 12:22:40 this is where i got it from http://rafb.net/p/ATk3vc38.html Aug 19 12:29:01 alex: hmmmm Aug 19 12:29:46 tric: You see an error -right?! :D Aug 19 12:30:17 dam @ "Due to significant API changes in the upstream open-source project and due to the timeline of getting certain Bluetooth profile implementations certified, a comprehensive Bluetooth API will not be possible or present in Android 1.0." Aug 19 12:39:51 spykid: yes Aug 19 12:41:33 https://android.clients.google.com/ Aug 19 12:41:56 lol Aug 19 12:42:45 * alex2308 should write AndroidAntiSpy Aug 19 12:43:34 tric got it working now Aug 19 12:43:53 the faulty layouts blocked the recreating Aug 19 13:39:38 I know this has to be something simple, but I can't figure out how to send a sms message to the emulator Aug 19 13:39:59 I'm looking at the docs and it says to just use sms send but I'm not sure where the sms command is Aug 19 13:40:49 telnet localhost 5554 Aug 19 13:40:53 use the emulator control in eclipse Aug 19 13:41:14 I'm not running elipse, so I have to use telnet I guess Aug 19 13:42:42 tethridge: run the "ddms" application in the tools folder Aug 19 13:42:55 it has an emulator control tab to call/sms Aug 19 13:43:27 ok, let me check that out Aug 19 13:43:56 I haven't been able to lock the screen. Is that a bug. I thought that I just needed to press the power button to lock it. Aug 19 13:45:22 i have to press hangup to lock it. Aug 19 13:45:48 that works Aug 19 13:46:15 I guess the nice little unlock app isn't included in the emulator that we saw a few months back where you connect the dots Aug 19 13:46:20 anyone experienced with com.google.common.io.android.AndroidHttpConnectionFactory ? Aug 19 13:49:31 no. but you app need permission.INTERNET ;) Aug 19 13:53:26 youre good Aug 19 13:53:28 ;) Aug 19 13:55:04 "This thread forbids HTTP requests" Aug 19 14:00:16 hehe, i had same probs. like unknown error opening udp socket ;) Aug 19 14:05:03 Keine Ergebnisse für "This thread forbids HTTP requests" gefunden. Aug 19 14:12:39 alex: start another thread for those requests. are you trying to connect inside the ui thread? Aug 19 14:12:48 yes Aug 19 14:13:57 alex: dont do it. start another thread, so you dont block your activity Aug 19 14:14:14 never worked with threads, any advice/tut? Aug 19 14:14:44 hehe, yes. Thread.run and use Handler to talk from the thread to your ui thread/activity Aug 19 14:16:48 damn, im sure i read something today how to retrieve the tmp path, but i cannot find it again. sucks Aug 19 14:28:31 hmm. prob Aug 19 14:28:39 i need the http response Aug 19 14:28:53 how would i block my app until i get the http response using threads? Aug 19 14:34:49 greetings people Aug 19 14:39:02 whats the easiest way to create the raw byte array into Bitmap ? Aug 19 14:47:20 good morning! Aug 19 15:02:12 hey ttuttle Aug 19 15:04:28 alex2308: The thread that is getting the http response should notify the main thread using a Handler. Aug 19 15:05:28 Something like this from the http thread to the main thread Aug 19 15:05:29 messageHandler.post(this); Aug 19 15:08:39 ive created a container, where info from the thread can be stored Aug 19 15:08:55 the main thread waits 500ms for the "subthread" and checks the container for info Aug 19 15:09:03 its ugly, but easy Aug 19 15:11:11 How do I decide if the database has been created for the first time or was available if I use the openOrCreateDatabase(...) command ? Aug 19 15:11:17 alex: thats wrong. Aug 19 15:12:16 alex2308: check out android.os.Handler Aug 19 15:12:22 alex2308: you want to use either a return message, or startActivityWithResult. Aug 19 15:12:28 alex: your ui thread should display some progress dialog. and the http thread should notify the ui thread about success using a Handler, you can send a message and attach objects aswell Aug 19 15:12:50 tuttle: starting another activity doesnt help here Aug 19 15:12:53 the prob is, the new thread isnt allowed to do http requests, too Aug 19 15:13:26 Run the http request in a thread and let your main thread do like tric said. Aug 19 15:14:03 Use the Handler to notify your main thread when the request is done or failed. Aug 19 15:14:04 how can i create a thread, that is allowed to do http requests? am i missing something? Aug 19 15:14:30 alex2308: Just create a Handler. Aug 19 15:15:27 ttuttle how can i create a thread, that is allowed to do http requests Aug 19 15:15:43 Why do you think a thread is not allowed to do an http request? Aug 19 15:16:06 because it raises an exception which says so Aug 19 15:16:17 can you send the excpetion? Aug 19 15:16:29 I do this all the time but Ihave not ported to .9 yet. Aug 19 15:18:25 thats the code: http://rafb.net/p/SO9Pl143.html Aug 19 15:18:41 line 12 raises: This thread forbids HTTP requests Aug 19 15:19:40 Wow, that's frighteningly specific. If you have the permissions, I'm not sure why it's doing that. Aug 19 15:23:50 the only permission i added since 0.9 is INTERNET Aug 19 15:24:20 i guess i have to implement a specific thread Aug 19 15:24:27 maybe a httprequestthread :p Aug 19 15:24:28 alex2308: This http request worked from your main thread? Aug 19 15:24:47 no, the main thread forbids http requests, too Aug 19 15:25:01 then there is some other issue not threads. Aug 19 15:25:16 Of course I have not tried my code on .9 yet. Aug 19 15:26:55 Maybe someone that has ported to .9 can help, sorry. It will suck if the method described does not work though. :-( Aug 19 15:32:29 cool. the code that was working at work is generating this on one of my projects: Error generating final archive: null, UnknownGeneric ADT Problem Aug 19 15:35:44 is there going to be an official email client? Aug 19 15:36:00 I was checking to see how easy it is to send a photo via email and I couldn't do it Aug 19 15:36:11 I assume that is because there isn't an email provider Aug 19 15:36:22 am I missing something? Aug 19 15:36:26 alex2308: ttuttle how can i create a thread, that is allowed to do http requests << did you request the NETWORK (or INTERNET) permission? Aug 19 15:37:30 romainguy: INTERNET I think Aug 19 15:37:32 tethridge: there will be an email client. it's not included in the SDK, apparently. Aug 19 15:37:41 romainguy: Yeah, it's INTERNET. I remember when rlove changed it. Aug 19 15:38:31 so is that the reason why I couldn't email the photo? I sort of assumed that gmail support would be built in for sending photos Aug 19 15:39:03 tethridge: It will, on phones. Aug 19 15:39:15 tethridge: Or, at least, some sort of email client. Aug 19 15:39:22 tethridge: this is the SDK, not the bits for an actual phone product Aug 19 15:39:53 I understand, I'm just trying to see how so use cases will work Aug 19 15:39:58 s/so/some Aug 19 15:43:53 romainguy i did add the INTERNET permission Aug 19 15:44:21 damn, this "Error generating final archive: null" error sucks Aug 19 15:44:40 I was able to crash the media player in landscape mode. Plus it didn't show cover art when in landscape mode and some buttons didn't render correctly. Should I file bugs? Aug 19 15:45:07 attach a virus if you do Aug 19 15:45:35 mac virus, because the google folks use osx Aug 19 15:47:42 did the services run without big changes when you ported your apps ? Aug 19 15:48:11 i dont use services Aug 19 15:48:56 anno: yes Aug 19 15:52:36 :/ Aug 19 15:54:11 alex2308: why would you attach a virus? Aug 19 15:54:47 to demonstrate anger :) Aug 19 15:55:27 alex2308: in the unlikely event you managed to infect someone's computer, do you think that would make them more likely to want to fix your bug? Aug 19 15:57:02 yes Aug 19 15:57:15 id force them to Aug 19 16:00:32 alex2308: how? (I'm really interested now.) Aug 19 16:00:49 alex2308: I mean, if your virus contained an AI smart enough to fix the code, I think you could just *sell* it to Google. Aug 19 16:01:48 i could encrypt personal data and ask for a bugfix in order to decrypt them Aug 19 16:03:10 that might be hard when bubba from cell block C is giving you the old heave ho. Aug 19 16:06:04 al2308: Um, /me is not even going to go in to the dozens of reasons why that would be ineffective. Aug 19 16:07:18 Well I'm starting my service. It starts the onCreate and onStart method. In onStart I'm starting a thread to do the heavy work that has to be done by the service. But the start fails all the time. The application crashes I get no error message in the emulator. Just a black screen remains. What could that be? With M5 everything works fine. Aug 19 16:07:38 anno^da-_: Did you check logcat? Aug 19 16:10:05 threading seems to be a popular problem :) Aug 19 16:11:18 Well yes but I'm not getting the error. :/ Aug 19 16:13:35 I'm checking again now :). Aug 19 16:28:06 yawn Aug 19 16:28:22 anyone around that can help with my service permission issue? Aug 19 16:34:26 what are you trying to do? Aug 19 16:35:31 create a service in one APK and use it in another. Aug 19 16:36:02 i figured i might need to create a permission to use the service from external APKs, which I did, but the problem remains. Aug 19 16:36:21 I get a permission denial because the client APK apparently doesn't have the custom permission that it requests. Aug 19 16:36:28 the two manifests are here: Aug 19 16:37:03 http://code.google.com/p/five/source/browse/trunk/five-client/AndroidManifest.xml Aug 19 16:37:14 http://code.google.com/p/five/source/browse/trunk/five-music/AndroidManifest.xml Aug 19 16:38:26 can i assume that you're signing both APKs with the same key? Aug 19 16:38:35 no, you can't. Aug 19 16:38:45 the two APKs are logically separate on purpose Aug 19 16:39:06 they represent an unprivileged modular arrangement. any other developer should be able to extend five exactly as five-music does. Aug 19 16:42:00 Do I need a permission to start the MediaRecorder ? Aug 19 16:42:21 anno^da-_: android.permission.RECORD_AUDIO Aug 19 16:42:35 when in doubt, check http://code.google.com/android/reference/android/Manifest.permission.html Aug 19 16:43:08 Well Im recordin video Aug 19 16:43:15 and there is no permission regarding that Aug 19 16:43:43 in M5 it worked fine now I get no error in code but the MediaRecorder fails with an Exception Aug 19 16:44:09 jasta: re: what you're trying to do--i'm poking around to see if there's an example that I can reference Aug 19 16:44:28 anno^da-_: what's the exception? Aug 19 16:45:27 runtime exception -> start failed Aug 19 16:45:36 jasonchen: what's weird is it claims clearly that i get permission denial for org.devtcg.five.permission.CONTENT_SERVICE Aug 19 16:45:59 but five-music declares that it uses this permission. so it is Android just telling me to buzz off that i can't have the permission i ask for? Aug 19 16:46:09 so is* Aug 19 16:46:41 i was pretty tired last night tho, so maybe i missed something stupid :) Aug 19 16:49:08 jasta: it looks like you're declaring uses-permission in both client and music Aug 19 16:49:45 you want to delcare a permission in on the five-music side Aug 19 16:50:31 (this is of course, assuming that my morning coffee has kicked in and i'm making sense) Aug 19 16:51:26 jasonchen: sounds right Aug 19 16:51:47 basically move lines 15-21 in five-client/AndroidManifest.xml into the entry for five-musis/AndroidManifest.xml Aug 19 16:54:28 ttuttle: cool. didn't realize that you were hanging out here. are you back in school? Aug 19 16:57:40 jasonchen: hmm? i don't follow? Aug 19 16:58:11 five-music is the real client to these services. the declaration should remain in five-client, no? Aug 19 16:58:35 service declares permissions, clients says uses-permission Aug 19 16:59:24 right, so i don't see what i did wrong here? Aug 19 17:01:47 looks like you are doing the reverse now Aug 19 17:02:04 as jason said, move the permission declaration from client to server Aug 19 17:03:57 five-client implements the service. ignore the name of the project in this context. five-client is a client to the five-server, a C program running on the user's PC. Aug 19 17:04:35 ok Aug 19 17:04:46 ok, ignoring the name, you need to move the the under regardless Aug 19 17:05:09 i thought you did this by declaring android:permission="..." to specify which permission you use? Aug 19 17:05:53 for example, what if i wanted to consolidate CONTENT_SERVICE and META_SERVICE permissions into FIVE_SERVICES? Aug 19 17:06:01 and have content and meta service both require FIVE_SERVICES permission Aug 19 17:06:20 then if i put under it wouldn't make any sense. i'd have to declare FIVE_SERVICES permission twice. Aug 19 17:06:24 (or more, for more services) Aug 19 17:13:26 out of interest (and i'm checking android-freeware.org), but are there any Terminal apps for android? Aug 19 17:13:53 steventroughtons: do you mean a terminal onto the local device, or like an SSH client? Aug 19 17:14:09 local device, commandline access to the OS Aug 19 17:14:13 steventroughtons: a terminal onto the local device will be largely useless on production devices due to the security policies Aug 19 17:14:25 security policites? Aug 19 17:14:28 steventroughtons: you can run 'adb shell' to get a command line though Aug 19 17:14:44 sure, that part i'm doing atm, but it would be nice to have a terminal app Aug 19 17:15:16 steventroughtons: we had one but I think it's bit-rotted a little Aug 19 17:15:30 'we' being google? Aug 19 17:16:25 steventroughtons: yes Aug 19 17:16:45 steventroughtons: on a real device, this would not be as useful as you imagine. Aug 19 17:16:47 oh that would be super to see out in the wild, has it been pulled? Aug 19 17:17:18 I'm only working off the sdk, and i've found terminals to be useful on iphone, but what 'security policies' did you mean? Aug 19 17:17:24 steventroughtons: we thought about creating one for the vogue, but didn't for a couple of reasons: a) to write a proper terminal we would need to write some stuff natively, b) the vogue had no hardware keyboard Aug 19 17:17:38 for a real device, a terminal will be exposed through adb. Aug 19 17:17:40 (i bet) Aug 19 17:18:10 could one access the adb shell from a java activity? Aug 19 17:18:39 no. i'm having a hard time understanding what exactly you're wanting to do? Aug 19 17:19:14 just want a shell prompt in the os, that's all Aug 19 17:19:20 *why*? Aug 19 17:19:37 steventroughtons: you can talk to the adb from activity Aug 19 17:19:38 poke around the filesystem, run commands, etc? Aug 19 17:19:51 steventroughtons: you can plug the phone into USB and run adb shell for that. Aug 19 17:20:04 that means i have to plug it into a computer Aug 19 17:20:07 no reason to do it through an android activity. that makes no sense at all. Aug 19 17:21:09 well, whatever, you won't be able to do it without defeating android's built-in security (that being that you won't be able to run ELF binaries without being privileged more than regular applications can be) anyway. Aug 19 17:21:23 or at least, certain ELF binaries. those in /system. Aug 19 17:21:54 sure, but that wouldn't stop me installing busybox in /data for example, and using it to work with the fs Aug 19 17:21:59 for exploration, the SDK and developer tools (adb) will be much more than you need. and also, much more than you get on the iPhone. Aug 19 17:22:05 as i've been doing with the adb shell Aug 19 17:22:28 i just don't see why you would want to explore with the phone. do you believe you can learn something new that way? Aug 19 17:22:43 or just frustrate your fingers and eyes? Aug 19 17:23:06 i've used a terminal on iphone for many different reasons Aug 19 17:23:24 by the way, Android's "security" is likely to be a very thin layer, unable to stop most seasoned linux hackers. Aug 19 17:23:44 if you are one of them, you should be able to defeat it and create/install a terminal app. Aug 19 17:24:23 well currently i can create elf c binaries to run with adb shell, but then can't make a UI one i dont think Aug 19 17:24:31 Android's security, in fact, will be entirely based on the notion that you won't be reflashing the image. If you do, all bets are off. Aug 19 17:24:39 steventroughtons: you can make a UI terminal. or rather, *one* can. ;) Aug 19 17:24:50 maybe that's you, or maybe it isn't, I can't say. Aug 19 17:25:33 but do realize that a proper terminal will allocate a UNIX pty, which is not functionality Java can natively do. You would need to write a small JNI layer, or try to fiddle with their ioctl binary (I did, unsuccessfully) Aug 19 17:26:17 regardless, it would not be a hard project. as i said, a seasoned hacker should be able to do lots of things like this, asusming you can reflash the device. Aug 19 17:26:38 most of Google's security, as is the case with any embedded device, is based on the notion that you aren't going to just simply reflash the thing. Aug 19 17:27:10 maybe they have extra hardware checks or softare checksumming to prevent this from being easy, but i doubt it. most embedded devices can't afford to do that type of thing. Aug 19 17:27:31 but that's assuming i have one of these theoretical 'devices' :P i have but the emulator, and won't be getting any device under contract Aug 19 17:27:46 I'm interested in seeing what the system can do Aug 19 17:27:50 then why do you care to develop software to run on a phone you won't buy? Aug 19 17:27:51 not the first device that runs it Aug 19 17:28:04 are you just trying to crudely compare the iPhone to Android? Aug 19 17:28:07 because I'm interested in the platform Aug 19 17:28:38 the platform itself as designed by Google will prevent you from constructing a meaningful system terminal. that is your answer, then. Aug 19 17:29:03 the iPhone probably needs to be jailbroken to support this as well, which makes the comparison void. Aug 19 17:29:08 right, so it's no less restrictive than iPhone Aug 19 17:29:27 I'm not trying to compare anything, I was just hoping to have a native app terminal instead of using adb all the time Aug 19 17:29:35 The restrictions are really there to prevent security problems. Would you give an app on your phone a root terminal? Aug 19 17:29:48 not my 'phone' Aug 19 17:29:56 but if it were another device, perhaps Aug 19 17:30:19 so long as anything distasteful could be undone Aug 19 17:30:23 or, rather... Aug 19 17:30:26 steventroughtons: what exactly do you need to do with a terminal? Aug 19 17:30:27 via a reflash or dfu Aug 19 17:30:40 would you trust your average user to manage a device where apps can have a root terminal? Aug 19 17:30:47 I don't *need* anything, I just asked if there was one around Aug 19 17:30:50 steventroughtons: distasteful could be undone? the device has a wireless radio directly tied to your bank account. oh yes, there is a LOT of distsateful things to be done. Aug 19 17:30:52 and this is what I get :P Aug 19 17:31:01 @jasta I said not a phone Aug 19 17:31:15 this meta conversation is boring me. Aug 19 17:31:21 because you don't read? ;) Aug 19 17:31:23 jasta: then don't participate :) Aug 19 17:31:27 jasta: == morrildl Aug 19 17:31:36 ttuttle/morrildl any insight on my permission issue? Aug 19 17:31:44 jasta: permission issue? Aug 19 17:31:51 jasta: plz to see your Manifest(s)? Aug 19 17:32:11 the "client": http://code.google.com/p/five/source/browse/trunk/five-music/AndroidManifest.xml Aug 19 17:32:19 the "server": http://code.google.com/p/five/source/browse/trunk/five-client/AndroidManifest.xml Aug 19 17:32:19 steventroughtons: the emulator is somewhat less locked down than devices will be, but you still won't find a terminal particularly useful Aug 19 17:32:24 steventroughtons: but yes, one can be created Aug 19 17:32:35 your best bet is still just 'adb shell' though Aug 19 17:32:45 that's all i was asking, thanks Aug 19 17:33:18 morrildl: the client (five-music) gets permission denial trying to bind to either the content or meta services defined by the "server" (five-client) Aug 19 17:33:39 jasta: oh I think jasonchen was looking at that Aug 19 17:33:42 despite that i created the permission relationship as android seemed to require. before i had any permission stuff in place, it also failed with permission denial. Aug 19 17:33:50 he was, but his suggestion did not make any sense. Aug 19 17:34:02 and then he wandered off :) Aug 19 17:35:27 actually, perhaps my axml2xml tool still works and i can just find this out from the system apks Aug 19 17:36:46 jasta: and what are you trying to do? protect your Service via a permission other apps have to request? Aug 19 17:37:08 morrildl: no, all i'm trying to is use my service. i tried adding permissions because that didn't work initially, citing a securityexception. Aug 19 17:37:25 it was suggested to me that i no wmust create a permission relationship to make it work, which also doesn't seem to work. Aug 19 17:37:40 morrildl: the service and the app run in two different processes, different user ids, and different apks (in case this matters) Aug 19 17:38:13 just like all the system services do, so this should be supported, right? Aug 19 17:38:23 jasta: are the services offered by the client or "music"? Aug 19 17:38:41 ttuttle: the services are in five-client. the nomenclature here is confusing because there is a larger role being described there. Aug 19 17:38:41 jasta: I think you need to declare the permission in the other manifest. Aug 19 17:38:46 oh Aug 19 17:39:08 ttuttle: that makes no sense though. why would the apk using the service describe in detail the permission it wants? with human readable decriptions and the like? Aug 19 17:39:15 jasta: IT doesn't. Aug 19 17:39:20 jasta: *It Aug 19 17:39:31 jasta: It should be described in detail in the apk *offering* the service. Aug 19 17:39:38 jasta: The one using it just has Aug 19 17:39:39 which is five-client, where they are defined. Aug 19 17:40:03 by the way, i also have in five-client, the host of the services, because it was required after i added permissions. Aug 19 17:40:11 that seemed stupid to me, though, as you can see by my comment immediately above: Aug 19 17:40:16 Aug 19 17:40:30 jasta: Oh, I was reading this wrong. Aug 19 17:40:46 jasta: Looks like it should work. Where are you getting the error? Aug 19 17:41:08 ttuttle: in five-music as it attempts to construct its playlist service which binds immediately to the content service. Aug 19 17:41:46 the security exception doesn't describe the permission denial specifically, however the logcat a few lines above the exception says that there is a "Permission denial", because I need "org.devtcg.five.permission.CONTENT_SERVICE". Aug 19 17:41:57 which i clearly request, as you can see in five-music's manifest. Aug 19 17:41:59 jasta: ...but you request that. Aug 19 17:42:01 jasta: Yeah. Aug 19 17:42:14 jasta: And you're sure everything's up to date and such? Aug 19 17:42:26 my only thought is that somehow the project wasn't getting rebuilt with the right manifest? but i tried cleaning it several times :\ Aug 19 17:42:41 i can try one more time now building on a totally separate host, but i do think there is a problem here other than that. Aug 19 17:42:44 hang on, i will try anyway Aug 19 17:42:47 jasta: Okay. Aug 19 17:42:48 brb Aug 19 17:43:24 (i have to go through all the hassle of installing eclipse 3.4 manually hehe) Aug 19 17:44:21 jasta: have you tried moving the after the ? :) Aug 19 17:45:06 romainguy_: the problem is not in the manifest you're reading. Aug 19 17:45:21 five-client works fine. five-music can't use five-client's services, though. Aug 19 17:46:01 (btw, i would prefer to remove all these permissions completely, but that doesn't seem possible either) Aug 19 17:46:26 although i guess there's no harm in adding that layer Aug 19 17:48:31 jasta: I'm confused, how many apks are involved here? Aug 19 17:49:27 jasta: did you try adding android:exported="true" to your s when trying to do this sans permissions? Aug 19 17:49:46 morrildl: 2. Aug 19 17:50:07 jasonchen: no, i didn't. i'd never heard of that attribute before. Aug 19 17:51:34 it seems like, had i had an intent-filter, that android:exported="true" would be set automatically? am i reading this documentation right? Aug 19 17:51:51 yes Aug 19 17:51:59 does a service having intent filters make any sense though? not really sure what that would be for Aug 19 17:52:25 it doesn't particularly make sense--hence the existence of the attribute, methinks. Aug 19 17:52:28 http://code.google.com/android/reference/android/R.attr.html#exported Aug 19 17:52:49 hang on, i will try this (still setting up eclipse 3.4) Aug 19 17:54:43 after reading the changes-overview, this does seem like the likely culprit though. thanks. Aug 19 17:55:43 yw. sorry it took a bit to get to this. Aug 19 18:13:08 *groan*, finally got it up and building again :) Aug 19 18:13:23 i need to fix the anrdoid maven plugin so i dont have to use Eclipse to build anymore hehe Aug 19 18:14:48 jasonchen: thanks, android:exported did the trick. Aug 19 18:15:09 jasta: great to hear Aug 19 18:15:21 time to start digging in and rewriting most of this crap ;) Aug 19 18:16:07 well, no, but it will be time when im off work hehe Aug 19 18:24:28 damn, still this Generic ADT Problem with a project Aug 19 18:25:17 Will it be possible to code applications for android in Python anytime soon? Aug 19 18:25:38 error generating Archive: null. any hints how to debug this? Aug 19 18:29:40 fred? Aug 19 18:29:48 Yah Aug 19 18:30:03 sup homie :) Aug 19 18:33:50 tric: what's the context? Aug 19 18:34:53 not much :) trying to figure out what the proper setup is for testing (regular unit testing, tests w/ instrumentation) on android. I noticed the ApiDemos project with 0.9 came with several tests under a 'tests' dir, but not sure how to kick them off, or what the right way is to build them along with the main ApiDemos project. Aug 19 18:35:00 xavd: its a Error of a project. prolly happens while building it Aug 19 18:35:26 fpotter: did you get it working on a device? Aug 19 18:35:33 tric: it shows up in the console? Aug 19 18:36:09 xavd: there is nothing in console, it shows up in Problems View in Eclipse 3.4 Aug 19 18:36:46 herriojr: I got the regular ApiDemos running on the device. That part was fine. Just not sure what the right way is to build the tests themselves. They have their own AndroidManifest file, that defines no activity. Aug 19 18:36:50 but i discovered it shows up for all new android projects, so i guess my adt plugin is broken Aug 19 18:37:15 did you try doing a clean? Aug 19 18:38:50 fpotter: i can help when i get back to the office, though i haven't done any sophisticated testing myself yet. Aug 19 18:39:09 it does seem that instrumentation was improved in 0.9 tho Aug 19 18:39:29 what devices are you guys running 0.9 on? I thought it broke a lot of stuff Aug 19 18:39:52 I'll check the manifest in a second to see what you're talking about fpotter Aug 19 18:39:53 jasta: yeah... it looks kinda _awesome_. Aug 19 18:39:59 herrior: none currently. i think the vogue is no more... Aug 19 18:40:14 ah, ok Aug 19 18:40:34 xavd: yes, i tried several cleans. reinstall of both plugins fixed it. Aug 19 18:40:37 fpotter: it certainly is an improvement. i finished getting five compiled this morning...got a lot more work left tho Aug 19 18:41:06 especially since now apparently i have to produce a kludgey work around to the deficient mediaplayer. Aug 19 18:41:07 tric: well that was strange. glad to hear you got it fixed Aug 19 18:41:15 i doubt ill be able to target device launch Aug 19 18:41:43 is it even possible to have two AndroidManifest files referenced in the same project? I kinda feel like the intention with the 'tests' under ApiDemos was to have them be a totally separate project, but not sure... Aug 19 18:42:57 i dont believe it is possible. im heading back now so ill be back on to look in about 10m. Aug 19 18:43:07 (at lunch right now) Aug 19 18:43:12 I asked earlier, but I ask again: Will it be possible to run python apps on android? Aug 19 18:44:22 dual: it all depends on how open the carriers let android be when it launches on a device Aug 19 18:44:35 dual: not with the 1.0 SDK Aug 19 18:44:46 but you could have a Python interpreter in Java Aug 19 18:44:51 like Jython Aug 19 18:45:07 xavd: hmm, looks like there is still something broken. accessing the main android preferences view or the child build view hangs Aug 19 18:45:09 romainguy: Do you know sth. if the MediaRecorder is broken ? Aug 19 18:45:15 herriojr: It should be possible to compile Python if android allows it Aug 19 18:45:31 But how open source is it really to end users? Aug 19 18:45:33 anno^da-_: no idea Aug 19 18:46:00 android is just a specification, the carriers can remove any and all features if they deem necessary before it launches on any devices on their network Aug 19 18:46:22 hmm, strange, it works again. something is fishy here Aug 19 18:46:26 that's one thing I don't think people have been taking into consideration Aug 19 18:46:34 tric: what version of eclipse are you using? Aug 19 18:46:39 3.4 Aug 19 18:46:45 So they wont let me install and change whatever I like? Aug 19 18:46:57 they may not Aug 19 18:47:02 tric: any information the eclipse log? Aug 19 18:47:08 works well at work, worked without problems till this evening here. and since some hours it is broken. Aug 19 18:47:38 Then I bet people wont call it open source Aug 19 18:47:51 carriers are free to modify android any way they see fit Aug 19 18:48:05 so android may be a subset of what it should be when it launches Aug 19 18:48:06 But it wont be open source to the users Aug 19 18:48:32 dual: yes it will, since they will be able to grab the source Aug 19 18:48:36 oh, it could be open source, but they might implement some type of signing that doesn't allow you to install new firmware Aug 19 18:48:47 xavd: hmm, yes ;-) http://pastebin.com/d25c32192 Aug 19 18:48:49 I've seen it done on Motorola devices Aug 19 18:48:55 Well, Ok Aug 19 18:49:04 where the source is open source, but you can't install it on the phone yourself without it being signed Aug 19 18:49:25 I bet someone will crack it some time. Aug 19 18:49:31 I hope so :) Aug 19 18:50:20 xavd: and this was the trace from my problem before reinstalling the plugin: http://pastebin.com/d7dc269ce Aug 19 18:50:25 tric: that's strange Aug 19 18:51:01 tric: I'll check that NPE Aug 19 18:51:26 but it's a bit strange, and migth be due to an install issue. Aug 19 18:51:26 haha, the the NPE is back again Aug 19 18:51:33 Any other than HTC who has confirmed that they will make android phones? Aug 19 18:52:07 tric: damn Aug 19 18:52:25 tric: can you enable the verbose build output (prefs > android >build) Aug 19 18:52:44 I'd be interested to see what's the output before the npe (so that I can figure out where it happens) Aug 19 18:53:07 dual: probably any device manufacturer part of the open handset alliance Aug 19 18:53:38 htc, lg, motorola, and samsung are all part of the open handset alliance Aug 19 18:54:30 And Sony Ericsson and Nokia are still sticking with Symbian? (which will also be "open source") Aug 19 18:55:28 I don't know for sure Aug 19 18:55:46 Nokia just recently started making BREW phones again, so I wouldn't say they are completely tied to symbian Aug 19 18:56:13 Ok, I didn't know that Aug 19 18:56:22 but interestingly, qualcomm is part of the open handset alliance Aug 19 18:56:33 so BREW might go the way of the dinosaurs Aug 19 18:57:10 I look at it this way: manufacturers will support whatever operating systems the carriers enforce Aug 19 18:57:30 otherwise their phones won't get sold :) Aug 19 18:57:36 Maybe a little beyond this channel topics but: Will Nokia/SE let people install new versions of the open source symbian on phones with for example UIQ2/3 and S60 etc? Aug 19 18:58:05 idk Aug 19 18:58:14 Better check #symbian Aug 19 18:58:30 xavd: lemme try to isolate the problem. eclipse is logging again after a restart ;) Aug 19 19:00:51 yawn Aug 19 19:01:08 long day jasta? Aug 19 19:01:17 late night, more like it :) Aug 19 19:01:26 was up getting my app to run on 0.9 (which it does now) Aug 19 19:01:33 yeah :) Aug 19 19:01:38 I was up late watching olympics Aug 19 19:02:56 btw, did they finally implement class loading? Aug 19 19:03:11 or do you still have to do it the dex file way? Aug 19 19:03:54 fpotter: it does look like they set up instrumentation to be a separate project, but obviously unit testing would not work this way Aug 19 19:04:05 romainguy_ may be able to comment more intelligently on how they do this internally Aug 19 19:07:04 xavd: ok, i started eclipse without any open android project, and created a new Android project (AndroidTest). this http://pastebin.com/d420aa350 is the eclipse log, http://pastebin.com/m7ec43c12 is the console output Aug 19 19:07:07 fpotter: unit testing and instrumentation doesn't seem to be a well understood problem by anyone working with android Aug 19 19:08:35 Yup, we think testing is a waste of time Aug 19 19:10:06 Cedric2: huh? Aug 19 19:11:19 romainguy_: are you around? i have a few more questions about the static service connections in the music player and other apps? Aug 19 19:11:25 jasta: fpotter: unit testing and instrumentation doesn't seem to be a well understood problem by anyone working with android << wtf are you talking about? Aug 19 19:11:46 romainguy_: by anyone that doesn't work at Google, I meant. Aug 19 19:11:58 still Aug 19 19:12:09 no, not still. where is a working example of this done correctly? Aug 19 19:12:35 jasta: i would say that 80% of android code written by outsiders is still closed source at this point Aug 19 19:12:42 tric: looking Aug 19 19:12:47 how do we build the ApiDemos tests and run them ourselves, for example? Aug 19 19:12:48 so we are only looking at a small sample of apps Aug 19 19:13:08 I'm just trying to understand how to build/run these cool instrumentation tests that come along with ApiDemos, so I can understand how to use them with my own project. Aug 19 19:14:03 what's the problem with building it? Aug 19 19:15:26 how do you build a project with multiple manifests? Aug 19 19:15:48 you don't Aug 19 19:15:50 you build two apks Aug 19 19:15:50 romainguy: it's probably just me - i'm a little new to the scene. There's a directory full of tests there under tests/src that reference code under src/, another AndroidManifest file there that defines not activity. I'm not sure where to go next... Aug 19 19:17:05 romainguy_: does the included activityCreator generate ant build environments which can make this work or will we have to hack that up ourselves to do testing outside of the Eclipse environment? Aug 19 19:24:37 Am I able to invoke the callback of the camers takePicture somehow ? Or does the user have to click the button that is fixed by the hardware vendor ? Aug 19 19:24:47 +cameras Aug 19 19:24:59 romainguy: it's probably supposed to be obvious, but for whatever reason, I don't get how to build that second apk with the tests in it. Aug 19 19:26:11 fpotter: actually, Android's documentation is missing lots of stuff. Their own examples kind of gloss over certian details simply because they're well understood internally. Aug 19 19:26:38 It's a huge project, sure, and the general quality of the docs are great, but there are certain corners where it's incomplete, or just plain wrong Aug 19 19:27:13 and i've always thought testing was one of those areas. i was certain they used unit testing and instrumentation internally, but never bothered to say "oh by the way, ..." :) Aug 19 19:27:23 apparently Romain thinks i'm crazy for saying that, though. Aug 19 19:32:50 I know why he's not responding... :-) Aug 19 19:33:01 let me help Aug 19 19:33:05 romainguy, http://www.google.com/search?hl=en&q=define%3A%22unit+testing%22 :-) Aug 19 19:34:32 romainguy_: so, another problem i wrestled with on Five for quite a while that seems to be solved your music player here (and probably other apps of course) is how to deal with processing UI events before the necessary service connection has been made. There seems to be a small window between when the UI opens for the first time and the service is available to do stuff where if the user clicks an action, there is no way to fulfill the request. Aug 19 19:34:53 I thought the best strategy seemed to be to queue messages for all UI commands until the service is connected, and use a Handler to catch that cas.e Aug 19 19:35:01 but that seemed like a bit of overhead to kill a race condition Aug 19 19:35:08 how does the music player solve this? Aug 19 19:36:15 tethridge: i think the problem is really just taht their build/deploy/test environment is way different from ours, and they haven't really translated it yet :) Aug 19 19:36:51 you have a test environment? Aug 19 19:37:10 I thought that was what users were for Aug 19 19:38:35 jasta: the music player solves that in mainly two ways: either don't put up the UI until the service is up, or don't respond to UI if you're not connected to the service Aug 19 19:38:44 hmm is there a reason this isnt working? android:drawableTop="?android:drawable/divider_horizontal_dark" Aug 19 19:38:59 it comes back with lots of exceptions Aug 19 19:39:09 marcone: hmm? how does it do both? Aug 19 19:39:30 some of its activities do it one way, some the other way Aug 19 19:49:07 hmm Aug 19 19:49:36 with the drawableTop xml definition, is there a way to force it to behave like a 9patch and strech to fill_parent? Aug 19 19:58:41 gaaaah i cant make an ImageView stretch a 9patch Aug 19 20:09:26 marcone: how do you block the UI? just defer calling setContentView? Aug 19 20:09:42 yes Aug 19 20:10:09 what will display in its place after onCreate? a blank view? Aug 19 20:10:33 A black screen. Aug 19 20:10:40 I believe. Aug 19 20:11:53 it would be nice to have a way to defer the window loading. Aug 19 20:12:19 well, maybe. it would be interesting to be able to experiment with the two approaches Aug 19 20:12:57 how is "defer window loading" different from deferring the call to setContentView() ? Aug 19 20:15:20 hmm....anyone know offhand how to search for links to a specific filename in google? Aug 19 20:15:53 inurl Aug 19 20:16:03 inurl:filename.ext Aug 19 20:16:21 great, thanks Aug 19 20:17:07 marcone: i mean, the window animates into existence, but would display a black view for a moment Aug 19 20:17:13 why not defer allowing the window to even appear? Aug 19 20:17:22 or have that ability some other way, at least. Aug 19 20:17:47 but i'm not confident that would be better. i'd have to see it side-by-side i think Aug 19 20:20:39 postponing the window animation would make it appear as though your app didn't launch. Aug 19 20:21:18 did anyone got the gps provider running with the new sdk? Aug 19 20:21:22 marcone: what activities ignore the user's input? Aug 19 20:21:25 the docs say the gps provder simulates a journey as in the old release Aug 19 20:21:29 versus which ones wait? Aug 19 20:21:34 but i dont get any updates :-( Aug 19 20:21:41 marcone: trying to get a better sense of how my app should behave... Aug 19 20:21:47 what a good base guideline is for this behaviour Aug 19 20:22:21 marcone: also, romain tells me the service connection is maintained statically so the activity need not reconnect while the service (and thus process) is still alive Aug 19 20:22:53 but why is that a HashMap of Context to ServiceConnection? Why not just a static reference to the ServiceConnection? Aug 19 20:22:56 I don't think there is one that waits for its entire UI. The main screen displays part of its UI only after its bound to the service (it doesn't actually postpone calling setContentView) Aug 19 20:24:02 err, not the serviceconnection, i meant to the service connection binder itself, as given by onServiceConnected() Aug 19 20:27:11 but still, why the HashMap? Aug 19 20:27:17 the hashmap is just there to support some convenience methods to bind/unbind the service Aug 19 20:27:25 i'm exciting to implement this paradigm into my app :) Aug 19 20:28:09 what do you mean? is it something abstract you guys use internally? Aug 19 20:29:49 the music app has a class with a bunch of convenience methods for its various activities (getting a list of songs, starting playback, binding to the service, etc), and one of those methods uses that hashmap to keep track of who has bound to the service Aug 19 20:30:12 it's really just something internal to the music app Aug 19 20:31:37 is the finger swipe patented for navigation between pictures when viewing in full screen mode? Aug 19 20:33:15 I'm just curious. The home screen uses the finger swipe to move across desktops, but in the photo viewer you have to click on the arrows to the left and right Aug 19 20:33:26 marcone: is the HashMap shared by each Activity, or does each implement the field itself? Aug 19 20:33:29 the lack of consistency is what confuses me Aug 19 20:34:13 Does someone know how the "replace(..)" method in the SQLiteDatabase works ? I don't see the funcionality of it. Where do I define which row to be replaced ? Aug 19 20:34:46 anno^da-_: it might be based on the current row selected by the cursor Aug 19 20:35:32 oh hmm in SQLiteDatabase idk Aug 19 20:35:41 tethridge: we have good reasons Aug 19 20:35:50 ok? Aug 19 20:36:01 jasta: assuming you are talking about the same HashMap as I was, then it's private to the MusicUtils class, and only accessed by some of its methods Aug 19 20:36:09 I guess you aren't going to tell me? Aug 19 20:36:52 tethridge: not sure about any patents on that Aug 19 20:38:32 romainguy, I guess a new photo view could be written to use the finger swipe if somebody wanted, right? Aug 19 20:38:40 s/view/viewer/ Aug 19 20:38:40 tethridge meant: romainguy, I guess a new photo viewer could be written to use the finger swipe if somebody wanted, right? Aug 19 20:41:17 why wouldnt you use finger swipe for the photo viewer? Aug 19 20:41:27 that's my point Aug 19 20:41:43 currently you have to click on two arrow on the left and right to navigate Aug 19 20:45:06 is there a way to use MapView without network? Aug 19 20:45:29 with cached content Aug 19 20:46:34 sweet! it's finally been made official so i can talk about it hehe Aug 19 20:46:46 Google invested a truckload of cash in my girlfriend's startup company, AltaRock Energy :) Aug 19 20:47:10 she doesn't own it or anything, but she's gonna make mad cash from this still :) Aug 19 20:47:32 wow Aug 19 20:47:38 nice Aug 19 20:47:42 give her a ring before she gets away Aug 19 20:47:55 lol Aug 19 20:47:59 what do they do? Aug 19 20:48:57 geothermal energy Aug 19 20:49:40 they're just getting started too, they don't even have a facility built yet. Aug 19 20:49:51 but Google dropped a ton of cash on them to build a demo site Aug 19 20:50:05 * jasonchen pictured larry & sergey in some victorian jules verne adventure to the center of the earth when he heard about that investment Aug 19 20:50:56 aahhaha Aug 19 20:51:01 jasta: so technically, they're supposed to use that cash to build a demo site, not to give lots of its to your girlfriend :) Aug 19 20:51:45 marcone: *pssh*, technicality Aug 19 20:52:29 hopefully they don't come up with any bright ideas like drilling under Crater Lake... Aug 19 20:52:38 someone wanted to do that a number of years ago Aug 19 21:29:04 romainguy, can you tell me why that decision was made? Aug 19 21:34:44 I guess some stuff is still covered by an NDA... :-) Aug 19 21:55:33 romainguy_: that new fancy application crash dialog that pops up on fatal exceptions...can it be thrown intentionally to represent a fatal condition in your app? Aug 19 21:56:39 i'd like to throw up a kind of "aww crap" dialog and finish() on fatal conditions Aug 19 21:58:53 throw RuntimeException() ? Aug 19 21:59:10 throw new RunetimeException("message") Aug 19 22:07:02 ugh Aug 19 22:07:06 this is going to be a slog Aug 19 22:08:26 tethridge: if I could tell I would tell :) Aug 19 22:09:51 zhobbs: well, but i want to call finish() as well, and i want to ensure that my app is not restarted when the user clicks the button Aug 19 22:10:06 since i plan to use this for cases where i know the fatal error is going to just happen again Aug 19 22:10:37 why not just show a dialog yourself then? It's not *that* hard... Aug 19 22:11:26 no, i know, but i was hoping there was just some nice ErrorDialog class or somethin :P Aug 19 22:11:44 the wind/rain is picking up here...I'm going to be stuck home until this hurricane passes tomorrow evening Aug 19 22:11:47 there's AlertDialog jasta Aug 19 22:11:57 that's what the Sorry! dialog is Aug 19 22:12:12 really? what about the icon? Aug 19 22:12:19 the triangle thing? Aug 19 22:12:24 i thought it extended AlertDialog to do that. Aug 19 22:12:29 nope Aug 19 22:12:34 jsut use AlertDialog.Builder Aug 19 22:13:16 ok, what's the icon that's used by the standard one? Aug 19 22:14:02 android.R.drawable.ic_dialog_alert Aug 19 22:14:19 oops no Aug 19 22:14:21 not this one Aug 19 22:14:33 let's start over Aug 19 22:14:38 what icon are you talking about? Aug 19 22:15:46 am i imaginging the icon in the "Sorry!" dialog? I thought it was a triangle with an exclamation point in it. Aug 19 22:15:57 ah yes Aug 19 22:16:04 then it's ic_dialog_alert Aug 19 22:16:08 just wanted to make sure that was the right one Aug 19 22:16:25 What is android? Aug 19 22:16:46 so just call setIcon(android.R.drawable.ic_alert_dialog) on AlertDialog.Builder Aug 19 22:16:57 Nevermind Aug 19 22:16:59 * f00f- loves Builder's Aug 19 22:17:01 I rememer Aug 19 22:18:05 romainguy_: yeah, it's simple enough. i was just thinking a nice way to centralize this in Android itself would be cute. but it's not a big deal. Aug 19 22:18:39 hmmmm...no more ArrayListCursor Aug 19 22:19:07 it's a MatrixCursor now? Aug 19 22:20:29 yeah, guess so Aug 19 22:21:46 I don't really understand Parcelable.describeContents() Aug 19 22:22:03 it's only if you use file descriptors Aug 19 22:22:08 for now Aug 19 22:39:20 davidw: yeah, its such a slog! Aug 19 22:39:37 thats me finished real work at 23:39 Aug 19 22:39:51 now onto the 42 remaining errors Aug 19 22:51:19 I'm trying to make a notification like this : Notification notification = new Notification(R.drawable.stat_sample, text, System.currentTimeMillis()); Aug 19 22:51:27 is that right? Aug 19 22:52:56 Ah yeah Aug 19 22:53:04 you just use it in the notification manager Aug 19 22:56:19 does anyone know if there's a lot of overhead associated with IFoo.Stub.asInterface(ibinder)? Aug 19 22:57:38 i'm trying to implement a generic re-usable service connection activity to base a lot of my activities on Aug 19 22:57:58 and i'm thinking about storing statically the IBinder result and just simulating onServiceConnected() when the connection can be re-used. Aug 19 22:58:18 so when it is reused i'd be calling IFoo.Stub.asInterface() on it each time Aug 19 22:58:36 I wonder if it's even safe to keep a lingering reference to the binder object given to me by onServiceConnected Aug 19 22:58:44 i really wish i could see this code that the music app uses ;) Aug 19 23:01:41 jasta: patience Aug 19 23:01:50 jasta: remember, all will be open-sourced in time Aug 19 23:02:43 do you really want us to have patience? isn't it better for Android if we are writing code rather than waiting for you? :) Aug 19 23:03:12 jasta: No, I want you to write code *while* waiting patiently for Google to finish it and then open-source it. Aug 19 23:03:57 my app's rewritten, more elegant design depends on knowing this information now. Aug 19 23:06:37 jasta, I doubt there is much overhead. as little as they could manage for that anyway Aug 19 23:09:13 can you use the lingering referenc and code a re-connection thats exception oriented? Aug 19 23:09:49 what would that do for me? Aug 19 23:11:23 let you use the reference? Aug 19 23:12:14 what i was wondering is whether it's safe to keep a reference to the object given in onServiceConnected, or only if its safe to linger the IFoo.Stub.asInterface() result... Aug 19 23:12:23 because i bet they do the latter, since they aren't trying to be quite as general Aug 19 23:12:40 i was trying to create a solution like theres but completely general Aug 19 23:19:18 did you see linkToDeath Aug 19 23:20:39 n e way im not experienced enough to discuss this well Aug 19 23:32:52 Now that the Overlay controllers are gone Aug 19 23:33:03 And we have these itemizedOverlayItems Aug 19 23:33:10 how abouts do we use them? Aug 19 23:33:32 Just generally will do Aug 19 23:41:47 * jasta ponders if SQLiteCursor's are thread-safe. Aug 19 23:55:23 Anyone having issues with the new SDK in Linux? Aug 19 23:55:43 It won't generate the APK Aug 19 23:56:27 "Error generating final archive: null" Aug 19 23:57:02 i am not having problems Aug 19 23:57:16 are you using Eclipse 3.4? Aug 19 23:57:18 yes Aug 19 23:57:21 hrmmmmmmmm Aug 19 23:57:23 on Ubuntu and Debian (2 machines) Aug 19 23:57:27 yargh Aug 19 23:57:27 make sure you clean your project in Eclipse Aug 19 23:57:28 same Aug 19 23:57:29 wtf Aug 19 23:57:40 clean Eclipse install too Aug 19 23:57:50 did you install the ADT? Aug 19 23:57:58 ............... Aug 19 23:58:00 the Eclipse plugin, i mean. Aug 19 23:58:02 damnit Aug 19 23:58:10 no Aug 19 23:58:11 heh Aug 19 23:58:32 I'm surprised you're actually getting this error with no ADT plugin installed Aug 19 23:58:35 wait no I did Aug 19 23:58:50 anything interesting in the .log file? Aug 19 23:59:11 (in the workspace, under .metadata) Aug 19 23:59:52 no log in that folder Aug 20 00:00:46 Project -> Clean shows 1 error Aug 20 00:01:03 Location: Unknown ...... Type: "Generic ADT Problem" Aug 20 00:01:22 maybe reinstall the SDK? Aug 20 00:01:33 can you enable verbose build output (in the prefernces under Android > Build) ? Aug 20 00:01:41 I did that too Aug 20 00:01:50 nothing different than normal Aug 20 00:01:55 hmm Aug 20 00:02:07 something aint right Aug 20 00:02:09 someone else mentioned that problem, and made sure to reinstall and the problem went away Aug 20 00:02:19 reinstall what exactly Aug 20 00:02:29 and what problem exactly....APK build fail? Aug 20 00:02:30 what version of eclipse did you get? Aug 20 00:02:42 3.4 Aug 20 00:02:45 Ganymede Aug 20 00:02:51 yeah apk build fail with "error generating final archive: null" Aug 20 00:02:58 yeah thats it rightthere Aug 20 00:02:58 which distrib? Aug 20 00:03:13 Ubuntu Aug 20 00:03:18 Hardy Aug 20 00:03:30 I meant Eclipse distribution (Classic, Java, J2EE, ...) Aug 20 00:03:34 ahhhh Aug 20 00:03:53 Java Aug 20 00:04:01 hmm this should work Aug 20 00:04:10 well you can try to uninstall the plugin and reinstall it Aug 20 00:04:17 Did you update any references to the old SDK you may have as environment variables like ANDROID_HOME? Aug 20 00:04:20 but I'm not sure really how the first install can file like that Aug 20 00:04:32 env variables are not used by the eclipse plugin Aug 20 00:04:42 file = fail Aug 20 00:05:04 chomchom: yeah i dont have an env. var. set Aug 20 00:05:30 the doc is misleading regarding the env var, we need to fix that Aug 20 00:08:30 In the updatemanager, could you sanity check that both the Android Development Tools and Android Editors are at version 0.7.1.v200808141910-98467, unrelated but good to know. Aug 20 00:08:55 yep they are Aug 20 00:09:37 xavd: so you don't need ANDRIOD_HOME in the ant runtime properties? Aug 20 00:10:03 chomchom: are you using eclipse to launch the emulator? Aug 20 00:10:15 yeah Aug 20 00:10:39 yeah i guess my understanding is that it's not needed Aug 20 00:10:47 chomchom: I was talking about Eclipse, but I don't think ant requires it either. not 100% sure though. would have to check Aug 20 00:10:50 Windows -> Preferences where u specify that path Aug 20 00:15:06 Its a bit funnny that you get the exact same error on two different machines, it must be down to your install process Aug 20 00:16:58 Try killing all the adb processes, killing eclipse, starting eclipse with a -clean and setting everything up again in a new workspace. Make sure adb is dead Aug 20 00:19:33 no i only get it on one machine Aug 20 00:19:51 yeah im doing a complete reboot right now Aug 20 00:20:08 i'm going to try Eclipse Classic Aug 20 00:20:17 reboot? Linux? hehe. Aug 20 00:20:26 it's a crappy lappy Aug 20 00:21:16 It may have been an old adb process lurking around, I had some problems where I had to kill it aswell Aug 20 00:21:25 going to try Eclipse Classic.....it says Eclipse Java comes with "Partial" WST support....which is a dep. the Android plugin Aug 20 00:21:30 not sure what "partial" means Aug 20 00:21:54 partial should be enough Aug 20 00:22:01 how do i run the SDK? Aug 20 00:22:10 eclipse 3.4 anyway automatically downloads dependencies Aug 20 00:22:16 chomchom: yeah I know...but doesn't explain why APK isn't being created Aug 20 00:22:26 oh it does, eh? Aug 20 00:22:28 hmm Aug 20 00:24:04 KenBW2: read the install instructions. Aug 20 00:24:13 it mentions Eclipse and such Aug 20 00:24:24 i need some other progranm to run it? Aug 20 00:24:31 KenBW2: Read every part that has nothing to do with Eclipse. Aug 20 00:25:24 KenBW2: Eclipse is basically the only IDE they officially bothered to support. That's all. It's not required. Aug 20 00:25:56 it's also because Eclipse is by far the most used IDE amongst Java developers Aug 20 00:26:21 but i cant run it from Vista without extra software Aug 20 00:26:24 ? Aug 20 00:26:31 KenBW2:you don't NEED Eclipse Aug 20 00:26:40 what do you want to do with it? Aug 20 00:26:43 just test it out? Aug 20 00:26:47 yea Aug 20 00:26:48 or write software for it? Aug 20 00:26:55 take it for a test drive Aug 20 00:27:01 you don't need eclipse Aug 20 00:27:06 download the Windows ZIP Aug 20 00:27:08 extract Aug 20 00:27:12 done Aug 20 00:27:16 jasta: "bothered to support" is a big negative don't you think? It's quite a huge tasks to _properly_ support every IDE out there Aug 20 00:27:18 double click emulator in tools Aug 20 00:27:43 ah yea, thanks Aug 20 00:28:00 np Aug 20 00:28:12 xavd: I didn't mean anything by it. Aug 20 00:28:28 xavd: what kind of USB support is there going to be for android? Aug 20 00:28:39 could I in theory connect peripherals? Aug 20 00:28:43 TSchultz55: apparently, none available to us :) Aug 20 00:28:51 heh Aug 20 00:29:05 my project depends on it :( Aug 20 00:29:09 but that's fine by me. so long as we can rip out all this "officially" this and that junk ;) Aug 20 00:29:28 TSchultz55: not sure... and if I knew, all I could tell you is what's currently in the doc, sorry Aug 20 00:43:31 damn Aug 20 00:43:52 reboot -> fresh eclipse install -> fresh android sdk install -> fresh ADT install Aug 20 00:43:54 same error Aug 20 00:44:00 *sigh* Aug 20 00:45:00 any googlers know what the policy is for most apps when a critical service connection sudden disappears? Aug 20 00:45:07 throw up an error and quit the app? Aug 20 00:45:17 suddenly* Aug 20 00:45:38 jasta: It's more polite to tell the user there's a problem and wait until the connection comes back if you can. Aug 20 00:45:57 jasta: And then listen for network connection state broadcasts so you can retry automatically. Aug 20 00:46:05 jasta: Lemme know if you want more info, I'll look it up. Aug 20 00:46:11 jasta: sometimes I attempt to bind/start the service again Aug 20 00:46:15 ttuttle: i mean an Android service. Aug 20 00:46:16 jasta: (Note, this is personal opinion, not Google policy.) Aug 20 00:46:18 jasta: Oh. Aug 20 00:46:27 jasta: If it's "expected" to run, I think terminating is fine. Aug 20 00:46:33 jasta: Retrying, within reason, would be nice. Aug 20 00:47:32 jasta: but usually I just error out, in my case if it happened then somethings wrong Aug 20 00:47:55 yeah, that seems reasonable to me i just wanted to check to see if google has some magic :) Aug 20 00:48:21 i'm plowing through my activities one by one hardening and simplifying... Aug 20 00:48:45 basically, over the next 2 weeks i intend to have rewritten a majority of the Android-specific parts of Five. Aug 20 00:49:04 to be faster, better designed, etc. Aug 20 00:49:38 jasta: What's Five? Aug 20 00:49:55 jasta: If we had magic, it'd either be in the docs, or secret. Aug 20 00:51:53 ttuttle: by magic, i meant "best practice" type stuff. Aug 20 00:51:57 ttuttle: http://five.googlecode.com Aug 20 00:52:11 jasta: Fuck, that's AWESOME! Aug 20 00:52:36 thanks :) Aug 20 00:52:51 jasta: /me takes back all the nasty things he's muttered about you while arguing about why Android isn't open source enough yet. Aug 20 00:52:54 jasta: ;-) Aug 20 00:53:06 jasta: Did you apply for ADC? Aug 20 00:53:36 yes Aug 20 00:55:14 *crickets* Aug 20 00:55:17 jasta: lol Aug 20 00:55:17 jasta: does the server submit your last.fm plays, or the client? Aug 20 00:55:21 jasta: /me wishes he had been a judge. Aug 20 00:55:36 zhobbs: the client. it buffers them up until you stop raping your network connection, then submits them all in the background. Aug 20 00:56:22 jasta: nice Aug 20 00:56:25 jasta: this is awesome Aug 20 00:56:34 * ttuttle is so excited about Android. Aug 20 00:56:35 the server actually doesn't do much currently. just tracks changes on the PC and syncs them to the client when it asks. and of course streams the music. Aug 20 00:57:10 it does of course collect meta data too though. the server handles downloading album artwork and resizes it nicely fro the client to digest. Aug 20 00:57:45 when does the client digest it? just periodically in the bg? Aug 20 00:58:19 (the album art) Aug 20 00:58:52 the meta data synchronization is a separate service that runs periodically to check for changes and sync them back. it syncs all that stuff, album artwork including. Aug 20 00:58:55 included* Aug 20 00:59:12 the music player is actually in a totally separate apk even, and consumes the work that the sync client has done on demand. Aug 20 01:00:00 right now, this design makes first-time syncs kind of painful, because you basically have to wait for it to be done to start doing stuff. but i plan to rearrange stuff for a more formal launch so it basically collects the main meta data first, then the album artowkr next. Aug 20 01:00:12 so you can start playing around with it before it finishes first time sync Aug 20 01:00:30 ohh, ok...the first time grabs all the album art too Aug 20 01:00:44 yeah, the first time and periodic updates are actually the same process entirely. Aug 20 01:01:01 the server also generalizes it this way. to either side, nothing is special. Aug 20 01:01:18 jasta: You just start with an empty repository on the client? Aug 20 01:01:19 it uses SyncML to do all the change tracking/syncing, which is a nice little protocol for this actually. Aug 20 01:01:29 it's got all the proper hardening against massive conflicts built into the protocol Aug 20 01:02:00 ttuttle: Yeah. Thanks to Google's secrecy, I remain uncertain how to implement Five as a hybrid between traditional synced music and this new approach. That is ideally what I'd like to do. Aug 20 01:02:27 So that users can sync it manually in addition to this networked approach if they want to. Aug 20 01:02:30 What secrets do you need to do this? Aug 20 01:02:36 Oh, you mean over USB? Aug 20 01:02:38 But that's a total black box right now. Aug 20 01:02:43 ttuttle: Yes. Aug 20 01:02:47 jasta: Hmm. Aug 20 01:02:58 But I don't really care about that yet. There is way too much work to do anyway :) Aug 20 01:03:02 jasta: Okay. Aug 20 01:03:22 I mean, it's just a nicety to let users do both. The design is very general, so I don't think it should be a problem to add later when I know more. Aug 20 01:04:13 I basically felt like I designed the whole thing "in the dark" though, so there are a few gotchas in the UI that just plain won't fly for a production release. I'm spending between now and Android launch to iron all that out. Aug 20 01:05:28 ttuttle: I am quite excited by 0.9r1 because of the inclusion of the sample music player. Aug 20 01:05:50 jasta: Yeah, I'm excited about 0.9r1 'cause it's got my code in it! Aug 20 01:05:57 I plan to lift a few of the nice things I like from that, and also it has given me a way to reflect on some of the stupid Android decisions I made early on. Aug 20 01:06:25 Like I had no idea you could hold your service connections in a static context so all your activities don't have to constantly reconnect. *duh*. Aug 20 01:07:11 anyway, yeah, i'm really excited to have my project launch. Aug 20 01:07:28 i've been wanting this thing to exist for the last 2 years now :) Aug 20 01:08:18 ttuttle: Apple just recently announced that they patented this whole idea hehe. I'm actually not too concerned. As an open source software engineer, I don't have to fight patents ;) Aug 20 01:08:42 jasta: Apple needs to get a life and just make stuff. Aug 20 01:09:31 anyway back to hacking ;) Aug 20 01:09:38 i don't get a lot of "geek nights", so i gotta take them when i can hehe Aug 20 01:09:44 my gf really monopolizes my time Aug 20 01:10:06 jasta: ... Aug 20 01:10:21 jasta: /me feels *so* sorry for you. Having a girlfriend must be such a pain.~ Aug 20 01:10:36 i can't complain too much :) Aug 20 01:10:42 jasta: s/too much //; Aug 20 01:10:43 it's nicer tahn the alternative. Aug 20 01:11:02 when i don't have a gf, i can't get anything done becuase i'm spending my time trolling for booty Aug 20 01:11:08 jasta: lol Aug 20 01:11:09 when i do have one, i can't get anything done because then i have to spend time with them :) Aug 20 01:11:17 jasta: Find one who likes to code? Aug 20 01:11:46 ... or one who respects your passions Aug 20 01:11:53 i don't think that would really help. then we'd have an impersonal relationship :) Aug 20 01:11:57 Why? Aug 20 01:12:02 You could cuddle while you code! Aug 20 01:12:28 * jasta slowly backs away Aug 20 01:12:50 ... Aug 20 01:13:00 jasta: good thing you can geek out all day during work hours, otherwise that might actually be a problem huh? ;) Aug 20 01:13:50 yeah, basically my job lets me cheat :) Aug 20 01:14:12 heh. i start my new job on monday, I imagine I'll be absent for a couple months at least. Aug 20 01:14:23 that's sweet, here at? Aug 20 01:14:25 where* Aug 20 01:14:29 oh right, this is the one in tukwila? Aug 20 01:14:31 yeah Aug 20 01:14:56 So excited to be moving the hell on Aug 20 01:15:02 let me know how that goes :) Aug 20 01:15:10 taht came out wrong Aug 20 01:15:14 hehe Aug 20 01:15:22 lol Aug 20 01:16:28 well I guess with this SDK release my first excuse to not be working on my app is gone. Aug 20 01:19:09 Some things about compiled languages are so yucky Aug 20 01:32:21 ttuttle: let's say i wanted to have some other part of my application modify something about a list entry, say change the text color, what would be the best way to do that? Aug 20 01:33:03 the music app must need to do that when looking at the playlist since the playlist can arbitrarily advance... Aug 20 01:33:15 Is your list backed by a CursorAdapter? Aug 20 01:33:23 yes Aug 20 01:33:41 Then modifying the data should cause a rebind and it should magically work Aug 20 01:33:42 i have done this a lot in my app of course, but i keep feeling like my solution really sucks Aug 20 01:33:56 cbeust: but the data in question is not a permanent state that should be committed back to the database. Aug 20 01:34:18 the list data is, generally, but this particular change is a stateful change. Aug 20 01:34:46 It's not recommended to do that because if you move your list back and forth, the changes not committed to the cursor will be discarded Aug 20 01:34:58 consider my example above. Aug 20 01:35:27 when viewing the playlist, it marks the song currently playing. this state can change, but the data is likely backed by some sort of cursor. Aug 20 01:35:58 but the cursor need not change to indicate this. that makes no sense. Aug 20 01:36:43 previously, i did this by basically using a flag or map in view binder that would just check if the row being collected was the one that the state change belongs to. if it does, it would draw it specially Aug 20 01:37:11 so some other logic in the app would just add to that mapping, then invalidate the list. Aug 20 01:37:43 i feel like there *must* be a better way. especially if you are doing lots of updates like showing progress of entries in a list Aug 20 01:38:40 the way that views are recycled kinda clobbers the obvious approach of just searching for the row view in question and screwing with it Aug 20 01:40:33 jasta: just wrapper your cursor Aug 20 01:40:44 and *add* a field and return true if it's playing Aug 20 01:41:05 your bind view can treat this transient info like any other column Aug 20 01:41:23 but what about the case of say updating a progress bar? how can it be the best approach to constantly invalidate the list when the progress changes? Aug 20 01:41:34 don't invalidate the list Aug 20 01:41:40 notify data changed Aug 20 01:41:48 won't that cause every row to redraw? Aug 20 01:42:03 that's what i meant by invalidate the list: have every row on screen redraw. Aug 20 01:42:14 It will only cause a rebind, if you're careful in this rebind, the graphic update will be minimal Aug 20 01:42:27 yes make sure your bind is efficient and you should be fine Aug 20 01:42:35 how can i be careful in the rebind? Aug 20 01:42:37 views are re-used in list view Aug 20 01:42:44 only update the views impacted by the transient change Aug 20 01:42:47 just don't do slow stuff like lookup an image in a content provider etc... Aug 20 01:44:20 cbeust: but won't they all need to rebind? how would i known which rebound views i can ignore? Aug 20 01:44:43 even if i tracked it myself, this wouldn't work because i'd need to somehow find the difference between the underlying cursor changing and my manual change. Aug 20 01:45:01 musique: notify data changed << this is actually expensive Aug 20 01:45:06 it causes a full layout Aug 20 01:45:34 I don't suppose anyone in here is looking for some contractual android work? Aug 20 01:45:43 i am confident the approach i used throughout five is sloppy and inefficient :) Aug 20 01:45:50 If anyone is interested please send an email to kevin@novoda.com Aug 20 01:46:18 romainguy_: any suggestions? Aug 20 01:46:57 grab the view and change it? Aug 20 01:47:25 i'm looking for a good generally efficient paradigm for arbitrarily altering particular rows in a list. Aug 20 01:47:47 if you change the underlying data, change the adapter and notifyDatasetChanged Aug 20 01:47:48 romainguy_: how can i grab it? Aug 20 01:47:56 if you just change the UI representation of the data, just grab the view Aug 20 01:48:09 ListView.getView(positionOfItem - ListView.getFirstVisiblePosition()) Aug 20 01:48:44 ok, do you suppose it makes sense to do both to protect this data from vanishing during scrolls/view recycling? Aug 20 01:49:09 by both i mean to grab the view and make the update immediately, but also mark some flag that this row has some special state data so that the binder will also keep that state in tact. Aug 20 01:49:31 sure Aug 20 01:49:45 as long as you don't change the number of items in the list Aug 20 01:50:02 note that most of the time a notifyDatasetChanged is efficient enough Aug 20 01:50:05 well if its backed by a cursor i can just key uniquely with the data set Aug 20 01:50:21 if you don't do it frequently (every XX milliseconds) Aug 20 01:51:52 that's assuming your adapter reuses the convertView Aug 20 01:52:03 romainguy_: your one-liner above, ListView doesn't have a getView method? getChildAt? Aug 20 01:52:12 ah yes sorry Aug 20 01:52:15 getChildAt() Aug 20 01:52:21 < tired Aug 20 01:53:06 why would you subtract getFristVisiblePosition? Aug 20 01:53:40 to convert the adapter position into a view index Aug 20 01:54:05 hang on, i gotta digest how this will come together :) Aug 20 01:54:19 what exactly are you trying to update on screen? Aug 20 01:54:30 because it might be enough to do a notifyDatasetChanged Aug 20 01:54:37 in this case, i have a list of service sources and i'm updating their progress as they do stuff. Aug 20 01:54:57 but in general, i would like a better general strategy for this type of arbitrary manipulation that is both clean and efficient. ia m searching mostly for that :) Aug 20 01:54:58 ok so don't notifyDatasetChanged :) Aug 20 01:55:13 but in the general case, for infrequent updates, use notifyDatasetChanged Aug 20 01:55:22 there's one easy optimizations with this Aug 20 01:55:30 if you don't add/remove an item Aug 20 01:55:38 and if the updated item(s) are not visible on screen Aug 20 01:55:46 then don't call notifyDatasetChanged at all Aug 20 01:56:07 the range of visible items is obtained with getFirstVisiblePosition() .. getFirstVisiblePosition() + getChildCount() Aug 20 01:56:33 how do i get the adapter position for your original one-liner? Aug 20 01:56:43 i merely have the CursorAdapter's row id. Aug 20 01:56:57 that is your problem :) Aug 20 01:56:59 would i just maintain a map myself? Aug 20 01:57:42 extend the adapter or the view binder and just track what views i'm handing out for which rows? Aug 20 01:57:54 no, don't do that because they are recycled Aug 20 01:58:15 can't you just keep the position of your items somewhere? Aug 20 01:59:01 well, most of the data i work with is backed by a cursor, so it wouldn't be a good idea to lock the data set in i wouldn' tthink. also, that fails to be a general solution as i'm looking for :) Aug 20 01:59:35 couldn't i pay special attention to the recycling possibility? if i hand out a view that was already marked by another row id, remove it from my mapping Aug 20 02:00:00 you do whatever you want but I strongly advise against this Aug 20 02:00:01 that would also allow me to track what isn't on screen for a very fast opt. Aug 20 02:00:26 the recycling thing can be quite surprising Aug 20 02:00:39 romainguy_: i don't understand why? shouldn't it be simple? i have a map of row id to view, but i also mark the views with the row id they last had mapped. when i get a view, i check if it's been marked by another row id and remove it from the map first. Aug 20 02:00:43 ? Aug 20 02:02:14 because we don't guarantee that we will have only one view for one row id Aug 20 02:02:46 it would theoretically possible for the recycler to have two views that were bound to the same row id Aug 20 02:03:17 hmm, that certainly would be problematic. Aug 20 02:03:57 that's why we usually base as much as we can on positions Aug 20 02:04:36 but the problem here is that since my data is mostly backed by cursors, i would have to iterate through the entire cursor to build a map once on init, and any time the cursor changed Aug 20 02:04:42 in order to get a mapping of id to position. Aug 20 02:11:05 wait, i feel like i'm being silly here. the number of items on screen at any given time should be pretty small. couldn't i just search the listviews children and then just store that View until such time as the viewbinder updates for any reason? this would probably be the least overhead of all strategies Aug 20 02:12:27 that is, on each progress update check a mapping of id => View for the row view that corresponds. If it fails, search for it then set it in the map. Meanwhile, if the ViewBinder is asked to bind a new View for any reason, clear the map I was using. Aug 20 02:13:04 that way if the user scrolls during progress updates they're gonna take a hit (but a constant hit) in performance, but when they stop the performance will go back up. Aug 20 02:13:09 as it can just do map lookups Aug 20 02:13:31 any gotchas with this approach? Aug 20 02:43:34 * ttuttle -> sleep. **** ENDING LOGGING AT Wed Aug 20 02:59:56 2008