00:18.02 | *** join/#android cbeust (n=cbeust@69.36.227.135) |
00:24.58 | *** join/#android Kruton_Nebulon (n=kruton@24-148-7-189.snb-bsr1.chi-snb.il.cable.rcn.com) |
00:36.39 | *** join/#android schmylan (n=schmylan@ppp-70-251-98-151.dsl.rcsntx.swbell.net) |
00:40.35 | *** join/#android rufus_ (n=rufus@c-98-228-181-211.hsd1.il.comcast.net) |
00:53.13 | *** join/#android romainguy_ (n=gfx@216.239.45.19) |
00:56.24 | *** join/#android romainguy__ (n=gfx@216.239.45.19) |
00:58.06 | *** join/#android mithraic (n=mithraic@dyn-160-39-19-165.dyn.columbia.edu) |
00:58.25 | *** join/#android romainguy____ (n=gfx@69.36.227.135) |
01:02.09 | *** join/#android tethridge (n=tale@cpe-075-177-151-223.nc.res.rr.com) |
01:03.53 | *** join/#android morrildl_ (n=chatzill@76-217-210-185.lightspeed.sntcca.sbcglobal.net) |
01:09.00 | *** join/#android cbeust (n=cbeust@64-142-66-175.dsl.static.sonic.net) |
01:21.36 | *** join/#android infobot (i=ibot@pdpc/supporter/active/TimRiker/bot/apt) |
01:21.37 | *** topic/#android is BEHOLD - http://android-developers.blogspot.com/2008/09/announcing-android-10-sdk-release-1.html |
01:21.58 | *** join/#android duey (n=duey@203-190-208-12.innovationwaikato.co.nz) |
01:22.44 | *** join/#android woski (n=dleme@65.182.51.67) |
01:36.20 | *** join/#android romainguy_ (n=gfx@69.36.227.135) |
01:42.21 | *** join/#android matt_c (n=mcroydon@137.147.45.66.cm.sunflower.com) |
01:49.26 | *** join/#android matt_c (n=mcroydon@137.147.45.66.cm.sunflower.com) |
02:01.30 | *** part/#android Kruton_Nebulon (n=kruton@24-148-7-189.snb-bsr1.chi-snb.il.cable.rcn.com) |
02:07.09 | *** join/#android winfield (n=winfield@124.90.199.157) |
02:13.38 | *** join/#android huxu (n=huxu@12.54.128.69) |
02:15.19 | *** join/#android matt_c (n=mcroydon@137.147.45.66.cm.sunflower.com) |
02:17.55 | *** join/#android living_sword (n=chatzill@117.98.56.170) |
02:28.17 | *** join/#android matt_c (n=mcroydon@137.147.45.66.cm.sunflower.com) |
02:29.12 | *** join/#android bricode (n=bricode@200.122.185.24) |
02:33.28 | jasta | lol nice... |
02:33.37 | jasta | i was just listening to this song and a particular lyric stood out... |
02:33.44 | jasta | http://www.lyricsmania.com/lyrics/rogue_wave_lyrics_8148/asleep_at_heavens_gate_lyrics_74182/like_i_needed_lyrics_732631.html |
02:33.52 | jasta | star wars reference hehe |
02:34.14 | *** join/#android Razec (n=razec@189.56.183.198) |
02:36.21 | *** join/#android wakingrufus (n=rufus@c-98-228-181-211.hsd1.il.comcast.net) |
02:39.05 | *** join/#android living_sword_ (n=chatzill@117.98.56.170) |
02:47.48 | *** join/#android cbeust_ (n=cbeust@64-142-66-175.dsl.static.sonic.net) |
02:53.35 | f00f- | wow, no activity here |
02:54.11 | *** join/#android muthu (n=muthu@218.248.24.81) |
02:58.31 | muthu | erre |
03:00.45 | living_sword | evry1 is busy writing apps :) |
03:01.33 | f00f- | indeed |
03:02.04 | wastrel | i'm trying to get my palm to sync with linux :[ |
03:02.33 | living_sword | which distro ? |
03:03.29 | wastrel | just installed ubuntu intrepid |
03:03.36 | wastrel | worked in hardy but |
03:03.56 | wastrel | so far every ubuntu release since breezy has broken palm sync for me |
03:04.09 | wastrel | spend a couple weeks getting it working again and wait til next time |
03:08.00 | muthu | ubuntu is a mess |
03:08.06 | muthu | every update breaks something |
03:08.55 | wastrel | if i wanted stable i could use debian. everything would be a year and a half out of date but stable |
03:09.08 | muthu | fedora is nice |
03:09.25 | muthu | good balance.. stable and updates etc., |
03:09.44 | wastrel | yum is much better than a couple years ago |
03:09.56 | wastrel | yeah it might be time to look at fedora again |
03:10.06 | wastrel | apt is still better :] |
03:10.18 | wastrel | i'm installing it for someone at work tomorrow |
03:10.35 | wastrel | maybe i'll set it up at work i need a new workstation |
03:10.59 | *** join/#android BBHoss (n=bbhoss@c-68-62-170-33.hsd1.al.comcast.net) |
03:12.19 | muthu | went back to fedora after trying ubuntu |
03:12.58 | wastrel | yeah well i've been debian/ubuntu for years |
03:13.02 | muthu | X is the problem in linux |
03:13.04 | wastrel | it's a big change |
03:13.52 | *** join/#android dartdog (n=DadLapto@75.139.42.87) |
03:13.54 | muthu | oct 18 - bang goog dev day |
03:14.45 | snadge | just use ubuntu |
03:14.57 | snadge | its crap, full of bugs etc.. but if you have half a brain, you can work around them |
03:15.22 | snadge | as opposed to having to deal with all the other crap that non debian/ubuntu distributions put you through anyway |
03:15.33 | plusminus_ | crap, I can't get GPS to work at all in 1.0 |
03:15.43 | plusminus_ | not even with thru DDMS |
03:15.55 | snadge | does the web browser run for more than 5 minutes without crashing now? |
03:16.08 | snadge | i havnt actually tried it since the 0.9 beta .. and it was erm, interesting.. put it that way |
03:16.27 | muthu | the browser is sloooooow |
03:16.35 | plusminus_ | snadge: On G1 this person is not complaining: http://www.anddev.org/get_your_android_application_tested_on_a_g1_-t3063.html |
03:17.02 | snadge | well bear in mind, nobody else has a 'decent' mobile browser yet anyway ;) |
03:17.18 | snadge | although some people like the iphone's one.. i havnt tried it either.. iphones are terrible |
03:17.42 | plusminus_ | anyone got gps-receiving working? |
03:17.54 | muthu | true, chrome might be faster |
03:18.00 | romainguy | plusminus_: "Performance of OpenGL Apps seems to double, related to running in the emulator" |
03:18.11 | romainguy | that is totally meaningless without knowing what the emulator's host is |
03:18.15 | plusminus_ | romainguy i asked him for his desktop-setup |
03:18.18 | romainguy | :) |
03:18.20 | plusminus_ | :P |
03:18.38 | romainguy | but yeah, it's software OpenGL vs hardware OpenGL |
03:18.40 | romainguy | so... |
03:18.47 | romainguy | (and ARM-based software OpenGL) |
03:19.13 | muthu | push the browser into the hardware |
03:19.16 | wastrel | the iphone browser is the standard of comparison |
03:19.52 | plusminus_ | romainguy do you know if there is a working sample of gps-receiving for sdk 1.0 ? |
03:20.02 | romainguy | panoramio |
03:20.06 | romainguy | works great :) |
03:20.12 | romainguy | code.google.com/p/apps-for-android |
03:20.18 | romainguy | also the Radar project |
03:20.19 | romainguy | same URL |
03:22.55 | muthu | Wow! TMo launching the emulator is big news!! |
03:23.12 | muthu | that's the only thing showing up these days |
03:26.09 | muthu | oh shit |
03:26.37 | muthu | IIT madras alumnus, kills family of five and self in LA |
03:26.58 | muthu | arghhhh |
03:27.00 | muthu | terrible |
03:27.21 | muthu | shit, its the economy! |
03:29.09 | *** part/#android dartdog (n=DadLapto@75.139.42.87) |
03:29.25 | muthu | http://news.google.com/news/url?sa=t&ct=us/0-1-0&fp=48ecebe42ffbaad3&ei=CCnsSND7C4yQ6wP1hcCDCQ&url=http%3A//www.nytimes.com/2008/10/08/us/08slay.html%3Fref%3Dbusiness&cid=1255065591&sig2=BXqbhvoJooHJh9wBrn0zWQ&usg=AFQjCNGAJ9JScGrzQGPVc66USWJeh38zag |
03:30.00 | muthu | here's the short link: |
03:30.01 | muthu | http://www.nytimes.com/2008/10/08/us/08slay.html?_r=1&ref=business&oref=slogin |
03:30.25 | *** join/#android matt_c (n=mcroydon@137.147.45.66.cm.sunflower.com) |
03:30.49 | plusminus_ | crazy, no one heard the shoots o_O |
03:31.19 | gambler | pretty sad. what a jerk for killing his family though |
03:31.26 | gambler | i didnt think hindus believed in heaven |
03:33.05 | muthu | no |
03:33.15 | muthu | but they give up hope quickly |
03:33.29 | muthu | this mass suicide mentality is pretty common in india |
03:33.47 | f00f- | fuq |
03:33.49 | gambler | ouch :( |
03:33.49 | f00f- | well |
03:34.07 | f00f- | it's not uncomon |
03:34.10 | f00f- | look at japan |
03:34.23 | muthu | yeah, they came out of it nicely |
03:34.23 | f00f- | some say it's density of population |
03:34.30 | f00f- | others say culture |
03:34.33 | f00f- | (regarding suicide) |
03:34.47 | muthu | its culture |
03:34.50 | f00f- | i know in finland, it's the weather and geographic isolation ;) |
03:34.55 | muthu | haha |
03:35.13 | gambler | yeah its culture. japanese drive themselves so hard |
03:35.19 | plusminus_ | checking for the 5th time what is the difference between my try to get GPS and the on of RadarView |
03:35.51 | muthu | plusminus_: are you setting your locationprovider? |
03:37.09 | plusminus_ | this.mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, ... |
03:37.10 | plusminus_ | ? |
03:37.29 | plusminus_ | done in onResume |
03:38.44 | muthu | no the provider.. a mock provider |
03:39.00 | muthu | the built in will give you null |
03:39.05 | plusminus_ | ? |
03:39.24 | plusminus_ | mock providers cannot be set since 1.0 |
03:39.29 | muthu | there was this example posted in the android developer forum files section |
03:39.30 | plusminus_ | that was 0.9 |
03:39.34 | muthu | oh |
03:39.39 | plusminus_ | that sample is from 0.9 |
03:39.44 | plusminus_ | it worked like a charm then |
03:39.44 | muthu | ok.. haven't done anything maps lately |
03:39.48 | plusminus_ | np |
03:40.09 | dmoffett | plusminus are you trying to get lat/long from Eclipse if so there is a link that worked for me. |
03:40.32 | plusminus_ | thru the EmulatorControls ? |
03:40.37 | dmoffett | yes |
03:40.41 | plusminus_ | doesn't get thru to the code :( |
03:40.57 | plusminus_ | boolean b = this.mLocationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); // <-- return true |
03:41.54 | muthu | don't you need to use some mock? |
03:42.03 | muthu | since the providers will not be available in emu? |
03:42.09 | dmoffett | I was able to get a lat/long by calling: |
03:42.10 | dmoffett | LocationManager lm = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); |
03:42.11 | dmoffett | return lm.getLastKnownLocation(lm.getBestProvider(new Criteria(), true)); |
03:42.13 | plusminus_ | its meant to be done thru the Eclipse EMulatorControls |
03:42.37 | dmoffett | I did get back the lat/long I put in ddms |
03:42.46 | plusminus_ | muthu: so we don't need to change any code when releasing our app |
03:43.03 | muthu | oh ok |
03:43.45 | plusminus_ | I'm doing: |
03:43.46 | plusminus_ | this.mLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); |
03:44.08 | jasta | f00f-: when i was in ireland they said something on the radio that suicide rates are high |
03:44.17 | dmoffett | anyway I had to follow these instructions: |
03:44.17 | plusminus_ | this.mMyLocation = this.mLocationManager.getLastKnownLocation(PROVIDER_NAME); |
03:44.20 | jasta | weather and geographic isolation would be one explanation there as well |
03:44.47 | plusminus_ | jasta: weather in england is pretty bad... ;) |
03:45.02 | jasta | although it said northern ireland had higher suicide rates, which kind of throws that theory away |
03:45.05 | dmoffett | Hi all: |
03:45.05 | dmoffett | Please try the following: |
03:45.05 | dmoffett | 1. Download and extract LocationSample.zip from |
03:45.06 | dmoffett | http://groups.google.com/group/android-developers/files |
03:45.06 | dmoffett | 2. From Eclipse main menu, select File > Import ... Existing Projects |
03:45.06 | dmoffett | into Workspace, and import extracted LocationSample into workspace |
03:45.08 | dmoffett | 3. From Package Explorer, right-click the LocationSample project, and |
03:45.10 | dmoffett | select Run As -> Android Application |
03:45.12 | dmoffett | <PROTECTED> |
03:45.14 | dmoffett | LocationSample screen with message "Hello World, LocationSample" |
03:45.16 | dmoffett | 4. In Eclipse, select Window > Open Perspective > DDMS |
03:45.18 | dmoffett | 5. Select the "emulator-5554" entry in the "Devices" view |
03:45.19 | jasta | uhh |
03:45.20 | dmoffett | 6. In "Emulator Control" view, find the "Location Controls" section, |
03:45.22 | dmoffett | and select the "Manual" tab |
03:45.22 | jasta | yeah thanks dmoffett |
03:45.24 | dmoffett | 7. Provide values in the Longitude and Latitude fields (ie 17 17) |
03:45.26 | dmoffett | 8. Press the Send button |
03:45.28 | dmoffett | <PROTECTED> |
03:45.30 | dmoffett | DEBUG/LocationSample(159): location changed : |
03:45.32 | dmoffett | Location[mProvider=gps,mTime=1219971354000,mLatitude=17.0,mLongitude=17.0,m HasAltitude=true,mAltitude=0.0,mHasSpeed=false,mSpeed=0.0,mHasBearing=false ,mBearing=0.0,mHasAccuracy=false,mAccuracy=0.0,mExtras=Bundle[mParcelledDat a.dataSize=52]] |
03:45.36 | dmoffett | Each time you repeat steps 7 and 8 you should see a new entry in the |
03:45.38 | dmoffett | Logcat view. |
03:45.40 | dmoffett | I hope that helps. Please reply back to this thread if the following |
03:45.41 | jasta | really? ok. |
03:45.42 | dmoffett | steps do not work for you. |
03:45.44 | dmoffett | Regards, |
03:45.46 | dmoffett | Brett. |
03:45.48 | dmoffett | On Aug 28, 8:34 am, Antonio Villar <anvilla...@gmail.com> wrote: |
03:45.50 | dmoffett | sorry about that. |
03:45.53 | muthu | wow! |
03:46.05 | muthu | let me email antonio ;) |
03:46.30 | muthu | dmoffett: thx for the steps |
03:46.54 | dmoffett | I should have sent the link but the instructions are way down the page. |
03:47.07 | dmoffett | It sure looks bad. Again sorry about that. |
03:47.57 | plusminus_ | LocationAPISample.zip ? |
03:48.07 | plusminus_ | ... probably |
03:49.04 | dmoffett | btw the geocode api works nicely. |
03:49.21 | plusminus_ | (yeah geocode is really fine) |
03:49.29 | plusminus_ | thats exactly what my code is based on |
03:49.35 | plusminus_ | and it worked in 0.9 |
03:54.04 | plusminus_ | :( |
03:54.16 | dmoffett | no luck? |
03:54.31 | plusminus_ | nope |
03:55.30 | muthu | who won the debate? |
03:56.04 | plusminus_ | me... |
03:56.19 | plusminus_ | both repeating again |
03:56.43 | plusminus_ | imo McCain with less concrete plans |
03:56.46 | gambler | obama killed him last time and it was considered a tie |
03:56.47 | gambler | and im def no obama supporter |
03:57.28 | plusminus_ | http://www.youtube.com/watch?v=jjXyqcx-mYY |
03:58.05 | muthu | haha |
03:58.18 | muthu | obama blames the economy |
03:59.15 | f00f- | i think obama came out ahead in this one too |
03:59.19 | muthu | Obama won.. that's the vote so far |
04:00.12 | muthu | http://friendfeed.com/rooms/2008-debates |
04:01.35 | muthu | http://www.screaming-penguin.com/info/android_drawables/android_drawables.html |
04:01.40 | dmoffett | plusminus: try using the map application and then send the coordinates. |
04:01.42 | muthu | all android drawable listed |
04:02.03 | dmoffett | if that works then your app should be able to get the lat/long |
04:03.07 | *** join/#android PoohbaLT (n=Poohba@c-98-235-52-97.hsd1.nj.comcast.net) |
04:03.20 | *** join/#android erus` (n=Tom@92.12.20.205) |
04:08.04 | jasta | sooo |
04:08.28 | jasta | anyone with a real device wanna try out my very recently functioning app? :) |
04:10.06 | plusminus_ | dmoffett: It says like "Trying to determine your location..." and nothing happens |
04:10.26 | plusminus_ | ( I heavily clicked the button in the emulatorControls = |
04:10.27 | plusminus_ | ) |
04:11.05 | plusminus_ | I think i should completely destory the emulator image... |
04:11.18 | dmoffett | In ddms you selected the emulator and then in emulator control send the lat/long? |
04:11.45 | plusminus_ | yes yes, i can see heap and threads too |
04:11.53 | dmoffett | drag |
04:12.34 | dmoffett | Hate to say it but seems to work fine for me. |
04:12.42 | dmoffett | been doing it like that for a few days. |
04:14.42 | dmoffett | This is pretty stupid but for recording I needed to have an sdcard. It does not seem logical but maybe the an sdcard? Anyway I run my emulator like this: |
04:14.55 | dmoffett | emulator -shell -sdcard sdcard1.iso |
04:14.59 | dmoffett | reaching here. |
04:17.00 | plusminus_ | http://picpaste.de/pics/mapview_nogps.1223439411.png |
04:18.06 | *** join/#android BBHoss_ (n=bbhoss@c-68-62-170-33.hsd1.al.comcast.net) |
04:19.28 | *** join/#android bricode_ (n=bricode@200.122.185.24) |
04:23.19 | *** join/#android bricode__ (n=bricode@200.122.185.24) |
04:27.22 | *** join/#android BBHoss (n=bbhoss@68-240-25-129.area5.spcsdns.net) |
04:30.01 | gambler | I keep getting ANRs with my remote service. The error ActivityManager reports is Timeout executing service: Service Record |
04:31.01 | *** join/#android BBHoss__ (n=bbhoss@c-68-62-170-33.hsd1.al.comcast.net) |
04:31.07 | gambler | the stack trace is in the accept() method of a 3rd party lib |
04:31.28 | muthu | do it async |
04:31.46 | jasta | gambler: you can't block the main thread of a service |
04:31.53 | jasta | (accept blocks) |
04:32.35 | gambler | ah right well i implemented Runnable and called the run method, doesnt that mean it should be in a seperate thread? |
04:33.05 | jasta | uhm, no. |
04:33.12 | jasta | you're thinking of a thread |
04:33.56 | gambler | hmm ok. ...im not sure why i thought that. |
04:36.44 | *** join/#android bricode___ (n=bricode@200.122.185.24) |
04:40.42 | *** join/#android duey (n=duey@203.96.223.40) |
05:01.28 | huxu | can Intent be used to call another class activity? e.g. I have my main java file and then the intent will start the listactivity i have in another java file in the same package |
05:04.08 | muthu | intents are used to start activities, recievers, service |
05:05.06 | huxu | yea, so i have another java file that has Blah extends ListActivity and its Blah.java |
05:05.18 | huxu | so how do i start that activity from the other java file? |
05:05.56 | muthu | define activities in manifest |
05:06.03 | muthu | define intent filters for activities |
05:06.09 | muthu | startactivity with intent |
05:06.36 | muthu | D/ActivityManager( 56): Received spurious death notification for thread android.os.BinderProxy@434bd2e0 |
05:06.48 | muthu | emu is regularly crashing on me |
05:09.00 | *** join/#android plusminus_ (i=4421a620@gateway/web/ajax/mibbit.com/x-dd61b44e78cdac4d) |
05:18.38 | *** join/#android winfield (n=winfield@124.90.199.157) |
05:23.37 | *** join/#android bdjnk (n=bdjnk@71-212-56-11.tukw.qwest.net) |
05:31.27 | muthu | what's the view bound to android.R.layout.activity_list_item? |
05:31.35 | muthu | textview? |
05:32.34 | romainguy | user HierarchyViewer, you'll see |
05:35.03 | muthu | ok |
05:35.17 | muthu | keep forgetting hierarchyviewer |
05:35.42 | muthu | is it in eclipseplugin? |
05:39.08 | muthu | hv is nice |
05:40.09 | muthu | woah! |
05:40.12 | muthu | no kidding.. |
05:40.22 | muthu | wow, hierarchy rocks |
05:40.38 | muthu | unearthing some hidden views.. |
05:40.54 | muthu | hv must be bundled with plugin |
05:41.09 | romainguy | it's in the SDK |
05:41.21 | muthu | yeah, but no one uses it ;) |
05:41.24 | muthu | make it part of ddms |
05:41.27 | romainguy | stupid users :) |
05:41.31 | muthu | hehe |
05:43.45 | muthu | romain: is there a way to get the id of the views from hv? |
05:43.56 | muthu | so we can use the views effectively |
05:44.14 | muthu | activity list items has an image and text view |
05:44.19 | muthu | textview id is text1 |
05:44.24 | muthu | what about imageview? |
05:44.35 | muthu | image1? |
05:44.37 | romainguy | hierarchyviewer shows you the ids |
05:44.56 | romainguy | in each rectangle |
05:45.00 | romainguy | and also in the list of properties |
05:45.08 | romainguy | if you click a view, it'll tell you the full id name |
05:45.30 | muthu | ooooh.. sssweeeeet |
05:45.34 | muthu | wonderful |
05:45.43 | romainguy | try to double-click a view too |
05:45.49 | muthu | ok thx |
05:46.21 | muthu | its called icon |
05:46.55 | muthu | now i can tie up one of the android icons here |
05:46.57 | muthu | woot |
05:50.21 | *** join/#android vadim (n=Vadim@212.248.18.162) |
06:03.58 | *** join/#android cutmasta (n=cutmasta@62.225.134.181) |
06:14.13 | *** join/#android Yeggstry (n=mind@cpc1-rdng14-0-0-cust946.winn.cable.ntl.com) |
06:16.31 | *** join/#android rufus_ (n=rufus@c-98-228-181-211.hsd1.il.comcast.net) |
06:24.30 | *** join/#android dueynz (n=duey@203.96.223.40) |
06:34.56 | *** join/#android davidw (n=davidw@213.47.186.146) |
06:41.34 | *** join/#android BBHoss (n=bbhoss@c-68-62-170-33.hsd1.al.comcast.net) |
07:35.03 | *** join/#android p0g0_ (n=pogo@unaffiliated/p0g0) |
07:44.46 | *** join/#android anno^da_ (n=anno^da@p5B07F3DB.dip.t-dialin.net) |
08:03.06 | *** join/#android kaze (n=kaze@ABordeaux-152-1-56-91.w82-125.abo.wanadoo.fr) |
08:11.35 | *** join/#android muthu (n=muthu@218.248.24.81) |
08:11.51 | muthu | autolink does not show the maps |
08:12.07 | muthu | anyone know the uri format for address? |
08:19.08 | kaze | is gone.. autoaway after 15 min ..[cyp(l/on.p/on)] |
08:24.04 | *** join/#android systm (n=Robert@c-76-20-23-163.hsd1.ca.comcast.net) |
08:28.02 | *** join/#android PoohbaLT (n=Poohba@c-98-235-52-97.hsd1.nj.comcast.net) |
08:44.48 | *** part/#android chomchom (n=chomchom@78.32.95.81) |
08:55.22 | *** join/#android nowi (n=nowi@g227022180.adsl.alicedsl.de) |
08:57.23 | *** join/#android pjv (n=pjv@91.178.168.40) |
09:15.10 | *** join/#android SanMehat (n=san@nat/google/x-5a5f3c82ee99ec20) [NETSPLIT VICTIM] |
09:15.10 | *** join/#android minerale (i=35181@about/cooking/alfredo/Minerale) [NETSPLIT VICTIM] |
09:15.10 | *** join/#android swetland (n=swetland@nat/google/x-6eae5cb1f4c43e79) [NETSPLIT VICTIM] |
09:15.10 | *** join/#android Cedric2 (n=cbeust@nat/google/x-07066aebfaaf2069) [NETSPLIT VICTIM] |
09:15.10 | *** join/#android gdsx (n=xsdg@SIPB-VM-99.MIT.EDU) [NETSPLIT VICTIM] |
09:15.10 | *** join/#android summatusmentis (n=summatus@keymaster.tproa.net) |
09:15.10 | *** join/#android rwhitby (n=rwhitby@nslu2-linux/rwhitby) [NETSPLIT VICTIM] |
09:15.10 | *** join/#android merck (n=merck@122-116-117-188.HINET-IP.hinet.net) [NETSPLIT VICTIM] |
09:15.10 | *** join/#android taaz-db (n=dlehn@digital-bazar.com) [NETSPLIT VICTIM] |
09:15.10 | *** join/#android guerby (n=guerby@195.174.71-86.rev.gaoland.net) |
09:15.10 | *** mode/#android [+o SanMehat] by irc.freenode.net |
09:16.34 | *** join/#android erikwt (n=erikwt@ip82-139-116-154.lijbrandt.net) |
09:27.05 | *** join/#android systm (n=Robert@c-76-20-23-163.hsd1.ca.comcast.net) |
09:37.47 | *** join/#android elefther` (n=user@217.117.20.182) |
09:40.16 | *** join/#android guerby (n=guerby@195.174.71-86.rev.gaoland.net) |
10:29.56 | *** join/#android eton (n=eton@ppp-58-8-3-207.revip2.asianet.co.th) |
10:57.13 | gambler | I wish aapt walked the class graph and removed .class files my app doesn't use. |
10:57.39 | gambler | Testing takes forever because I reupload bouncy-castle each time. |
10:58.29 | muthu | how long? |
11:00.37 | gambler | since you asked. about 1min something |
11:06.10 | tomgibara | gambler: reflection makes that a dicey thing to do automatically |
11:06.31 | gambler | i guess the best workaround is just to develop my gui in another project |
11:06.33 | gambler | tomgibara, how so |
11:07.07 | gambler | meh im sure your right, no need for an explanation |
11:07.21 | tomgibara | maybe I misunderstood but... how does aapt know that you aren't using the classes? |
11:07.50 | gambler | :p |
11:08.30 | tomgibara | :) |
11:10.53 | tric | gambler: why do you include classes you do not use? remove those |
11:13.31 | gambler | tric, its a big library..walking the class graph manually would be :( |
11:14.30 | gambler | s/aapt/dx or some other compiler magic |
11:30.19 | muthu | 1min.. that's a good keyboard break for ya ;) |
11:40.09 | pjv | anybody knows why I can't easily uninstall Eclipse-run apps? "adb uninstall my.apk" on the bin/my.apk always gives me "failure". I know I can use the shell but... |
11:44.07 | *** join/#android zoniq (n=sk@87.246.65.243) |
11:52.31 | *** join/#android plusminus_ (i=4421a620@gateway/web/ajax/mibbit.com/x-ab1d18d8ed1bc463) |
11:59.35 | *** join/#android schmylan (n=schmylan@38.114.107.1) |
11:59.36 | *** join/#android schmylan_ (n=schmylan@38.114.107.1) |
12:01.52 | zhobbs | anyone know how to define an attribute for layouts, similar to the built in "?android:attr/listPreferredItemHeight"? |
12:05.49 | tomgibara | pjv: adb uninstall uses the package name |
12:08.46 | pjv | oh right thanks |
12:09.12 | tomgibara | zhobbs: see samples/ApiDemos/res/values/attrs.xml |
12:09.43 | plusminus_ | hey guys |
12:09.49 | tomgibara | hi |
12:09.53 | pjv | hey +- |
12:10.04 | plusminus_ | the installer on the App-Installer on the G1 is somehow not workign properly: |
12:10.05 | plusminus_ | http://www.4shared.com/file/66096434/f777bc63/AndOpenStreetMap.html |
12:10.37 | plusminus_ | it says like I want to have freakin every permission that Android offers... |
12:11.13 | zhobbs | tomgibara: yeah, I mean actual values, not custom attributes for custom views |
12:11.13 | plusminus_ | whereas I only have: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" /> |
12:11.40 | zhobbs | tomgibara: the one I referenced is used like android:layout_height="?android:attr/listPreferredItemHeight" |
12:12.33 | pjv | wow, seems to me it's a bug since it only gets there at reinstall |
12:12.54 | pjv | but why did it block in the first place? |
12:13.23 | pjv | can one disable unwanted permissions at any cost in the settings menu (that we don't have unfortunately)? |
12:14.15 | plusminus_ | I have no idea, I got a anddev-member making that video |
12:14.35 | zhobbs | you probably don't need "ACCESS_MOCK_LOCATION" anymore :) |
12:14.41 | pjv | something is pretty mixed up AFTER the block: it says "application install UNsuccesful" yet shows a green tick |
12:15.10 | tomgibara | plusminus_: I somehow managed to build an apk that crashed the installer on one device - don't know if its repoducible |
12:15.18 | zhobbs | that's funny though, looks like it literally lists every permissions possible |
12:15.34 | pjv | aha, I see why now: "blocked for every app not coming in through the Android Market" |
12:15.43 | plusminus_ | maybe the current sdk is not compatible ./ |
12:16.10 | tomgibara | plusmins_: my suggestion is to remove the MOCk permission and see if that resolves it |
12:16.11 | plusminus_ | Yeah, but the user can say "Never mind"... |
12:16.28 | plusminus_ | yeah just deleted it, as I posted ^^ |
12:17.01 | plusminus_ | I already sent him a version of AndNav, which doesn't have that permission |
12:17.23 | pjv | maybe try a very simple app first instead? |
12:18.21 | tomgibara | am I being dense, posted where? |
12:19.12 | zhobbs | tomgibara: probably anddev.org |
12:21.15 | *** join/#android erus` (n=Tom@92.12.111.159) |
12:21.29 | plusminus_ | http://www.anddev.org/get_your_android_application_tested_on_a_g1_-t3063.html |
12:22.10 | tomgibara | plusminus: I just happened onto your anddev post about how to sign your app |
12:22.32 | tomgibara | I noticed that you only specify a one year validity |
12:23.28 | tomgibara | I'm not confident about how app installs are going to work, but I'm pretty sure that if after one year the certificate has expired, users won't be able to update the app |
12:24.22 | zhobbs | that's my understanding as well |
12:25.54 | plusminus_ | tomgibara: I somewhere read that the validity is only checked once itzs getting installed :/ |
12:26.04 | plusminus_ | so just make it Integer.MAX_VALUE ? |
12:26.17 | tomgibara | well, an update is an installation isn't it |
12:26.17 | gambler | linky? |
12:26.27 | tomgibara | gambler: to? |
12:27.52 | gambler | anddev sign app post |
12:28.05 | tomgibara | plusminus_: I don't know the answer to that, fwiw, I used 10,000 days |
12:28.14 | tomgibara | gambler: http://www.anddev.org/viewtopic.php?p=11105 |
12:28.57 | tomgibara | As far as I know, there hasn't been any public guidance on signing policies. |
12:29.08 | gambler | I usually make my certificates valid for 250 years. |
12:29.08 | gambler | Im going to try to beat that French woman who lived to 122 |
12:29.19 | tomgibara | :) |
12:29.47 | gambler | 8^) |
12:30.00 | plusminus_ | 2g2 bye guys |
12:30.48 | Adamant | gambler: in 100 years people will just be bruteforcing them |
12:30.50 | schmylan_ | Ya, I got an email this morning about signing issues |
12:31.25 | *** join/#android muthu (n=muthu@59.92.0.73) |
12:31.27 | pjv | the disadvantage of making any key >5 years is that it probably will somewhat be possible to break it over 5 years |
12:31.28 | tomgibara | schmylan_: Did it contain any useful information? |
12:31.30 | gambler | Adamant, the heat death of the universe will happen first |
12:31.39 | pjv | Adamant: exactly |
12:31.43 | Adamant | gambler: not for public keys |
12:31.58 | schmylan_ | Not really. It was from someone at T-Mobile |
12:32.04 | schmylan_ | they had a OLD copy |
12:32.06 | gambler | ok ill take the bait ...why |
12:32.15 | schmylan_ | from my old PC |
12:32.27 | schmylan_ | I've since switched computers (bad choice) |
12:32.32 | Adamant | gambler: we're within spitting distance of 1024-bit keys now and they are being depreciated |
12:32.56 | Adamant | in cryptographic terms |
12:33.12 | tomgibara | Adamant: I actually used a 1024 bit RSA key for my cert. I was concerned about using anything too big for mobile devices |
12:33.23 | Adamant | back in the day they thought 512-bit systems would be enough forever pretty much |
12:33.37 | pjv | I'm still confused as to why exactly they use signing and why self-signing is sufficient |
12:33.37 | Adamant | tomgibara: as long as you don't have a long time horizon you're fine |
12:34.06 | tomgibara | Quantum computing might blow a hole in all such cyphers |
12:34.31 | gambler | yah thats the only legitimate worry |
12:34.34 | Adamant | tomgibara: maybe, maybe not. |
12:34.45 | Adamant | gambler: look at the progress made on factoring |
12:35.06 | Adamant | we've made a remarkable amount. |
12:35.51 | Adamant | tomgibara: the trick would be finding a public key cipher that is resistant to quantum techniques |
12:35.58 | pjv | "The certificate is used only to establish trust relationships between applications, not for wholesale control over whether an application can be installed" |
12:36.01 | tomgibara | Crypto anhiliation could be a single mathematica insight away :) |
12:36.10 | Adamant | indeed |
12:36.12 | gambler | I havent worked in that area in awhile but a quick wikipedia tells me GNFS is still the fastest alg out there |
12:36.25 | Adamant | gambler: yes, and it's fairly new |
12:37.00 | gambler | meh im not worried... |
12:37.01 | Adamant | we get better algos, more computing power, and more methods of using distributed power. |
12:37.18 | Adamant | gambler: you should only be worried if you were serious about 250 years |
12:37.35 | tomgibara | I was thinking about a possible key technique last night as it happens - based on finding hamiltonians - looked into it this morning and found out that there seem to be lots of effective algorithms for detecting them |
12:38.24 | Adamant | tomgibara: yeah. there have been a lot of ones proposed and smacked down. |
12:39.32 | Adamant | tomgibara: Ideally you could also prove the scheme is not in BQP |
12:40.13 | tomgibara | :) No problem - I'll whip out a proof this evening |
12:42.22 | Adamant | tomgibara: more schemes proposed the better |
12:46.39 | pjv | as I understand it certificates are only used to see if two apps are by the same creator? |
12:47.30 | tomgibara | comes out of his reverie about C* algebras |
12:48.08 | tomgibara | pjv: They are also used to determine whether an upgrade to an app originates from the same creator. |
12:49.01 | pjv | So you would definitely need a key that lasts longer than 5 years. This is a conflict in my opinion. |
12:49.12 | tomgibara | why? |
12:50.00 | pjv | Well, as said above, keys get broken and there is no PKI infrastructure |
12:50.18 | gambler | moores law is going to run out soonish.. |
12:50.25 | gambler | pjv, they are using x509 certs |
12:50.26 | Adamant | pjv: 5 years should be ok for 1024-bit keys. |
12:50.57 | Adamant | pjv: use a bigger key if you need a longer life |
12:51.32 | *** join/#android yakischloba (n=jake@209.160.56.254) |
12:51.32 | pjv | it's also annoying on open source projects: who should sign? |
12:51.54 | tomgibara | pjv: self-sign |
12:52.03 | Adamant | pjv: the guy wearing the caudillo hat and chomping a cigar |
12:52.30 | *** join/#android davidw (n=davidw@213.47.186.146) |
12:52.31 | Adamant | basically just have the head of the project sign. |
12:52.45 | Adamant | or someone appointed to do so by the head committee |
12:53.47 | pjv | heads of projects change so you would need to make the signing possible for several members |
12:54.23 | pjv | maybe I don't understand the finesses of "self-sign" but wouldn't you need to share passphrases for this? |
12:55.11 | Adamant | pjv: you could do your own PKI for the key if necessary, for a open source project there's usually enough trust to share it. |
12:55.35 | pjv | ok I see |
12:56.57 | gambler | just took me about 6mins to generate an 8192 bit key on a newish 32bit arch |
12:57.54 | *** join/#android plusminus_ (i=81020c44@gateway/web/ajax/mibbit.com/x-6f0fafaef118bb29) |
12:57.55 | pjv | wouldn't some kind of PKI in general for android have been better? then you could have changed keys in between updates (and thus avoiding the key gets broken), right? |
12:57.59 | gambler | i really should get a 64 bit machine if I want to be uber paranoid...probably cut that down alot |
12:59.28 | gambler | pjv, just update your key with every software update...voila new key lifetime. |
12:59.55 | tomgibara | pjv: For that you need an authority, which doesn't fit well with open source projects like Android |
13:00.52 | pjv | gambler: how does that work, I thought the whole point of the signing was to see that the update comes from the same creator? |
13:01.51 | zhobbs | yeah, I think if it's signed with a different key then you lose everything in /data/data/<package>/ on update |
13:01.52 | gambler | pjv sign your new package, and then once your new package is in place, change the reference key. |
13:03.03 | tomgibara | gambler: Sorry, but I don't think that makes any sense |
13:03.39 | gambler | sure it does. you use your old key to bootstrap your new key. its a basic concept in cryptography. |
13:04.06 | pjv | ... in "advanced" cryptography I'm sure ;-) |
13:04.43 | tomgibara | gambler: ...but the key isn't internal to his app is it - it's not his to reference or replace |
13:08.32 | gambler | well the 'pki' way to do it is to sign your app. then create a new app with its own key that has been signed by the upstream key. Then put the old key on the CRL |
13:08.33 | pjv | gambler: maybe you meant like in PKI: signing certificates for keys with other keys? |
13:09.30 | gambler | pjv, yah thats the current way. dont worry about not understanding pki too well. its a big scam anyway |
13:09.31 | pjv | gambler: yes, this is what I was complaining about, Android wouldn't follow certificates to a root certificate, and neither check on CRL's |
13:11.08 | gambler | pjv, you might want to look again. creating CAs is a masasive PITA |
13:11.30 | pjv | I should understand most of it (the theory behind it is simple enough, but the practice makes it harder, and a little bit of security usually makes things very very complicated), but it's not my day job, and my knowledge ends somewhere :-) |
13:11.52 | pjv | ok, the 'complaining' is not because my idea is better, by far |
13:12.20 | *** join/#android eleftherios (n=user@pdpc/supporter/sustaining/eleftherios) |
13:12.40 | pjv | just exploring what downsides this security has... |
13:13.05 | pjv | and working out the practical application... |
13:13.42 | gambler | ive got some scripts that handle all that...I just hate working with PKI though. its so divorced from reality |
13:14.06 | gambler | i think the concept of trust transitivity beyond a single arc is pretty ridiculous |
13:15.33 | pjv | I know some professionals in the crypto world that are getting pretty demotivated and paranoid at the same time :-) |
13:20.11 | *** join/#android krau (n=cktakaha@200.184.118.132) |
13:25.26 | *** join/#android tethridge (n=tale@207.235.54.1) |
13:29.58 | *** join/#android dmoffett (n=dmoffett@71.33.240.149) |
13:30.52 | *** join/#android ArteK (n=ArteK@artekw.cerbero.pl) |
13:34.22 | *** join/#android ArteK (n=ArteK@artekw.cerbero.pl) |
13:37.43 | *** join/#android cfreak200 (n=cfreak20@p54ADEEC1.dip.t-dialin.net) |
13:50.25 | *** join/#android vbabiy (n=vbabiy@rrcs-24-97-148-190.nys.biz.rr.com) |
13:51.20 | *** join/#android mithraic (n=mithraic@dyn-128-59-245-52.dyn.columbia.edu) |
13:52.37 | dmoffett | Got some new ideas for scary costumes for halloween this year. AIG Insurance Exec or Bank Exec. :-( |
13:54.02 | *** join/#android mithraic (n=mithraic@dyn-128-59-245-52.dyn.columbia.edu) |
14:05.27 | muthu | alan greenspan would work |
14:07.02 | *** join/#android living_sword (n=chatzill@203.115.94.128) |
14:07.53 | *** join/#android feig (n=ejf3@244.sub-75-193-18.myvzw.com) |
14:07.55 | zhobbs | I was wondering how they'd come up with $700B, here's how they do it: http://www.flickr.com/photos/30581266@N06/2902781625/sizes/o |
14:07.58 | *** join/#android tobyjoe (n=tobyjoe@pool-71-255-7-159.atclnj.east.verizon.net) |
14:08.18 | *** join/#android borism_ (n=boris@195-50-204-29-dsl.krw.estpak.ee) |
14:08.50 | gambler | lolza |
14:09.26 | gambler | great find |
14:09.30 | living_sword | hehe |
14:10.30 | cutmasta | lol |
14:11.33 | muthu | haha |
14:11.33 | *** join/#android Fus (n=rafal@host-81-190-8-105.gdynia.mm.pl) |
14:11.34 | unix_lappy | lol @ misteaks |
14:12.50 | *** join/#android mr_daniel (n=sysrq@e177153000.adsl.alicedsl.de) |
14:18.18 | snadge | look on the plus side.. if things continue the way they are goingt |
14:18.35 | snadge | there will be civil unrest, and a revolution |
14:18.41 | *** join/#android pardom (n=pardom@75.144.91.181) |
14:19.07 | *** join/#android mazzen (n=mortel@vpn-ce242017.extern.uni-duisburg-essen.de) |
14:19.41 | pardom | java question: i need a library that will allow "jQuery-like" selection, for example, i could retrieve text of a span with class "foo" by doing this $("span.foo").text() |
14:20.09 | pardom | doesn't have to be that notation... i just need the functionality |
14:23.48 | *** join/#android kslater (n=kslater@206.193.242.16.nauticom.net) |
14:24.34 | *** join/#android dartdog1 (n=Tom@75.139.42.87) |
14:29.23 | *** join/#android thinair (n=thinair@c-24-91-227-81.hsd1.ma.comcast.net) |
14:40.18 | plusminus_ | zhobbs: awesome picture ^^ |
14:41.27 | anno^da_ | http://vimeo.com/1891639# <- kind of a G1 launch event in London :-) |
14:42.53 | unix_lappy | ugh, 35 minutes. |
14:43.57 | jasta | hehe: |
14:44.00 | jasta | Whatever you may be sure of, be sure of this, that you are dreadfully like other people. - James Russell Lowell |
14:45.01 | *** join/#android Dralspire384 (n=dralspir@56-196.126-70.tampabay.res.rr.com) |
14:46.18 | *** join/#android eton (n=eton@ppp-58-8-3-207.revip2.asianet.co.th) |
14:49.20 | *** join/#android matt_c (n=mcroydon@gozur.sunflowerbroadband.com) |
14:49.40 | *** join/#android cbeust (n=cbeust@69.36.227.135) |
14:50.37 | *** join/#android cbeust_ (n=cbeust@72.14.228.1) |
14:54.11 | anno^da_ | unix_lappy: start at minute 14 |
14:54.12 | anno^da_ | :D |
14:56.50 | Disconnect | http://www.engadget.com/2008/10/08/vodafones-blackberry-storm-art-department-all-soon-to-be-fired |
15:01.22 | *** join/#android BBHoss (n=bbhoss@c-68-62-170-33.hsd1.al.comcast.net) |
15:02.02 | *** join/#android Dralspire205 (n=dralspir@56-196.126-70.tampabay.res.rr.com) |
15:02.25 | *** join/#android inZane-_ (i=nemo@dslb-084-058-055-232.pools.arcor-ip.net) |
15:11.16 | *** join/#android decipherstatic (i=root@otto.dreamhost.com) |
15:17.56 | *** join/#android Dralspire335 (n=dralspir@56-196.126-70.tampabay.res.rr.com) |
15:24.12 | *** part/#android dartdog1 (n=Tom@75.139.42.87) |
15:24.16 | *** join/#android dartdog1 (n=Tom@75.139.42.87) |
15:31.19 | *** join/#android swuing (n=dingdong@p5B124F8A.dip.t-dialin.net) |
15:33.53 | swuing | hi |
15:35.02 | swuing | well, i can download and use "android market" with eclipse and android-sk 1.0? |
15:35.26 | jasta | no |
15:35.31 | jasta | not at the moment, anyway |
15:36.35 | *** join/#android Terdhex (n=ENRIQUE@host-208-68-238-61.biznesshosting.net) |
15:39.51 | Terdhex | hi all |
15:40.16 | Terdhex | does anyone have a working sample of an email program? |
15:41.35 | Terdhex | those based on mail1.4 and activation1.1 wont work on 0.9+ |
15:42.05 | *** join/#android mazzen (n=mortel@vpn-ce242140.extern.uni-duisburg-essen.de) |
15:51.13 | *** join/#android harrdawg (i=cff25d0a@gateway/web/ajax/mibbit.com/x-265fa5860a2ea401) |
15:53.38 | *** part/#android harrdawg (i=cff25d0a@gateway/web/ajax/mibbit.com/x-265fa5860a2ea401) |
15:54.00 | *** join/#android harrdawg (i=cff25d0a@gateway/web/ajax/mibbit.com/x-d9db5d756e6ad21a) |
15:55.01 | harrdawg | Hey guys, I was wondering if anyone has done anything with version detection. i.e. having your app inform the user when a new version is available. |
15:55.36 | zhobbs | harrdawg: yeah, tomgibara has an open source lib for that |
15:56.06 | harrdawg | Is it posted anywhere? |
15:56.10 | zhobbs | yeah |
15:56.23 | zhobbs | http://www.tomgibara.com/android/veecheck/ |
15:56.48 | harrdawg | Thanks Hobbs. |
15:57.01 | zhobbs | thank tom :) |
15:57.48 | muthu | is veecheck integrated into market? |
15:58.19 | zhobbs | no |
15:58.38 | zhobbs | well, don't think so |
16:00.19 | muthu | ok.. that's something every market needs |
16:01.11 | muthu | zhobbs: what's the best way to store a file? |
16:01.24 | *** join/#android huxu (n=huxu@12.54.128.69) |
16:01.42 | zhobbs | muthu: how big is it? |
16:01.44 | *** join/#android cheng (n=cheng@141.76.49.20) |
16:02.00 | muthu | not that big |
16:02.06 | muthu | pretty small |
16:02.18 | muthu | just text |
16:02.40 | zhobbs | then save it in your /data/data/<package>/files dir |
16:02.58 | zhobbs | see Context.get*File*, something like that to get the actual path/File object |
16:03.07 | zhobbs | if it's large I'd go to the SDCARD |
16:03.15 | muthu | ok |
16:03.37 | muthu | why android doesn't automanage this? |
16:03.44 | zhobbs | it does really |
16:03.54 | muthu | how? |
16:04.11 | muthu | does it go to sdcard, if local data runs out of space |
16:04.34 | zhobbs | muthu: no, the user just uninstalls your app because they see it's taking up too much space |
16:05.40 | muthu | what? |
16:05.51 | zhobbs | you own everything in your /data/data/<package> folder...that's private |
16:05.59 | muthu | why can't the user be given an option.. if sdcard is available? |
16:06.13 | zhobbs | you could ask the user |
16:06.24 | muthu | how do we know, if we run out space? |
16:10.30 | zhobbs | you don't want to store large files in your data folder, so shouldn't be a problem |
16:11.06 | living_sword | i think 10-15 MB should be max |
16:11.39 | muthu | yeah like 16mb |
16:11.41 | *** part/#android swuing (n=dingdong@p5B124F8A.dip.t-dialin.net) |
16:11.55 | muthu | android coulda taken care of this |
16:12.38 | *** join/#android Adamant (n=Adamant@c-98-244-152-196.hsd1.ga.comcast.net) |
16:12.51 | zhobbs | I wouldn't permanently store a file in my data folder if it was over a meg |
16:13.30 | zhobbs | I guess my database could get that large, but that's different |
16:14.49 | jasta | if you store album artwork it'd easily get there |
16:15.19 | jasta | unless you store that on the sdcard |
16:15.34 | zhobbs | jasta: I store album artwork on sdcard |
16:15.56 | living_sword | mayb u put an alert when it crosses 10 MB and start moving stuff to sdcard. |
16:18.55 | muthu | what's the broadcast for sdcard insert? |
16:19.10 | living_sword | but storing user data on sdcard is useless if the user frequently changes cards. |
16:19.57 | zhobbs | true |
16:20.38 | muthu | do the app get notified? |
16:21.14 | jasta | i guess i actually hadn't thought about how to handle if the user changes sd cards on me |
16:21.19 | jasta | i don't ever refetch the album art. hmmm ;) |
16:27.35 | *** join/#android slux (n=slux@85-18-14-18.fastres.net) |
16:32.16 | harrdawg | Is there a MIME type for Android apps? |
16:33.35 | dmoffett | Seems like there would be standard application space on the sdcard defined by Android. |
16:35.18 | *** join/#android pandora-- (n=pandora-@66.238.50.126.ptr.us.xo.net) |
16:36.46 | *** join/#android schmylan (n=schmylan@38.114.107.1) |
16:38.01 | muthu | dmoffett: where's the sdcard api? |
16:38.11 | muthu | harrdawg: yeah, there is |
16:38.29 | *** join/#android schmylan__ (n=schmylan@38.114.107.11) |
16:39.44 | dmoffett | muthu: not sure there is an api for the sdcard. sdcard is just a file system. |
16:40.18 | muthu | yeah, so do we hardcode the path? |
16:40.48 | dmoffett | I think I have ask the same question three times with not much of a response. :-) |
16:40.53 | muthu | hmm |
16:40.59 | muthu | there's an api for /data |
16:41.03 | muthu | why not for /sdcard? |
16:41.18 | dmoffett | Seems like to me that Android would have some standard method to access. |
16:41.28 | dmoffett | maybe they are working on a solutions. |
16:41.35 | muthu | may b |
16:41.36 | rayado | They're just files on the file system |
16:41.50 | rayado | There are a bunch of intents that are broadcast when it's inserted, removed, etc. |
16:41.58 | rayado | See http://code.google.com/android/reference/android/content/Intent.html and ACTION_MEDIA_* |
16:42.04 | muthu | ok |
16:42.10 | muthu | it coulda been seamless |
16:43.24 | dmoffett | Seems a little cowboy to me. Apps can use the sdcard with out much regard to other apps. |
16:43.35 | muthu | yup |
16:43.51 | muthu | bit wierd |
16:45.56 | dmoffett | Maybe a bug report is due. |
16:46.58 | zhobbs | there is a constant for the SD card location |
16:47.06 | *** join/#android eleftherios (n=user@pdpc/supporter/sustaining/eleftherios) |
16:47.11 | muthu | where? |
16:47.15 | zhobbs | no idea where it is though, but I remember someone in here found it :) |
16:49.17 | dmoffett | Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ |
16:49.17 | dmoffett | File audioDir = Environment.getExternalStorageDirectory(); |
16:49.32 | dmoffett | something along those lines I guess. |
16:51.27 | dmoffett | http://code.google.com/android/reference/android/os/Environment.html |
16:52.37 | muthu | cool, thx |
16:52.56 | muthu | android needs to add the sdcard filesystem to the api |
16:53.07 | muthu | so we just dump our mess in there |
16:54.25 | harrdawg | muthu Do you know what the MIME type is? |
16:54.51 | muthu | application/vnd.android.something |
16:55.00 | muthu | archive?? |
16:55.23 | harrdawg | Okay, thanks...I'll keep looking into it. |
16:55.25 | muthu | its in dev forums |
16:55.35 | muthu | let me know if you don't find it |
16:56.10 | muthu | application/vnd.android.package-archive |
16:56.41 | muthu | harrdawg: guess, that's the one |
16:56.55 | thinair | hello, I have an image in an imageview that I want to resize / move using "touch"... is it right to load this image as an imageview ? |
16:57.52 | *** join/#android rorist (n=rorist@116-62.1-85.cust.bluewin.ch) |
16:58.12 | thinair | my goal is to have a result similar to the com.android.camera.crop in the photostream application... you have a rectangle that you can resize on top of an image... |
16:58.41 | *** join/#android rorist (n=rorist@116-62.1-85.cust.bluewin.ch) |
16:58.50 | zhobbs | thinair: if you load up the hierarchyviewer you might get a good idea what they're doing in the camera app |
16:59.37 | thinair | I will try to load, thanks.. an other question (conceptual) is it right to try to resize a view with a touch ? or a view should never changed size... |
17:00.29 | zhobbs | I think it's ok for views to change size |
17:00.33 | muthu | hierarchyviewer is great |
17:00.37 | jasta | views can change size, but are you sure that's what you want? a view changing size will adjust the layout of other widgets near it |
17:00.58 | zhobbs | you'll have to invalidate more than just your one view |
17:00.59 | thinair | zhobbs: thank you I am just reading... I believe it will help me a lot.. |
17:01.45 | thinair | I believe I just want to resize the image on top of a background image |
17:02.12 | *** join/#android unix_lappy (i=614133e2@gateway/web/ajax/mibbit.com/x-74ef581a94d8a22b) |
17:03.17 | thinair | thanks jasta, I will look at an other approach. I don't want to change the complete layout, I was pretty sure about that problem... |
17:03.57 | thinair | perhaps the surfaceview is better for my problem.. but first I will try the hierarchyviewer this will give me a start point.. |
17:04.35 | romainguy___ | you certainly don't need SurfaceView for this |
17:05.10 | romainguy___ | if I remember correctly, the camera app simply uses a custom View and draws the crop area manually |
17:06.41 | tethridge | is it possible to reuse the camera app's crop functionality? |
17:06.58 | romainguy___ | yes, you can look at the Photostream sample code in code.google.com/p/apps-for-android |
17:07.04 | romainguy___ | it invokes the camera's app crop |
17:07.31 | romainguy___ | it's a bit awkward to use though, we didn't have time to make it cleaner |
17:07.53 | romainguy___ | it's a lot better if you have a content provider to provider the images |
17:08.35 | thinair | my goal is the following : I have an image (like an horizon ligne, with names of peak (mountain)) and a background image of a panorama of mountain... the user should be able to fit the size/position of the horizon ligne on the backgroud image... |
17:13.45 | thinair | romainguy : it use a CropImageView, do you remember if you have herited from an other view ? (imageview/surfaceview...) |
17:14.15 | romainguy___ | I didn't write CropImageView |
17:14.21 | romainguy___ | but I believe it's just a View |
17:14.29 | romainguy___ | and stop thinking about SurfaceView :) |
17:15.11 | thinair | romainguy: thank you for the tip.. I will try a simple custom view.. |
17:16.20 | tethridge | thinair, you don't want to reuse the functionality? |
17:17.23 | thinair | tethridge : it would help if I could read the code certainly. But first I would like to learn android |
17:17.33 | *** join/#android Dougie187 (n=doug@wg-d232099.dsl.fsu.edu) |
17:17.38 | zhobbs | custom views are fun to make anyway |
17:18.08 | jasta | sure, now. |
17:18.12 | jasta | the first one wasn't that fun for me :) |
17:18.17 | zhobbs | hehe |
17:18.20 | thinair | tethridge: and to reuse cropimage, I just have to use the camera.crop intend... it's not my goal.. |
17:18.24 | harrdawg | muthu: thanks for that MIME type. |
17:18.49 | jasta | custom layouts are more fun, tho :) |
17:19.30 | zhobbs | custom layouts? |
17:20.22 | romainguy___ | zhobbs: a class that extends ViewGroup |
17:20.34 | zhobbs | ahh |
17:21.27 | zhobbs | most of my custom views extend LinearLayout...so I'm a cheater |
17:22.01 | zhobbs | that's really just gluing different views together |
17:22.27 | muthu | when you put all these views together you come up with a custom mess ;) |
17:24.21 | *** join/#android Dralspire (n=dralspir@55-96.126-70.tampabay.res.rr.com) |
17:24.37 | Terdhex | Does anyone have/know of a running email application for version 0.9+ |
17:25.01 | thinair | zhobbs, if you extend a layout it is not more a custom layout than a view ? the custom view I am beginning will extend view.. |
17:25.32 | *** join/#android kaze (n=kaze@pac33-1-82-235-251-34.fbx.proxad.net) |
17:26.19 | *** join/#android Dralspire (n=dralspir@55-96.126-70.tampabay.res.rr.com) |
17:26.29 | zhobbs | thinair: depends what you're doing, often when I do it it's really more like a "compound component" |
17:26.43 | zhobbs | http://code.google.com/android/toolbox/custom-components.html#compound |
17:28.08 | *** join/#android Dralspire (n=dralspir@55-96.126-70.tampabay.res.rr.com) |
17:28.28 | muthu | a custom view in a custom layout = custom custom :) |
17:30.21 | *** join/#android Yeggstry (n=mind@cpc1-rdng14-0-0-cust946.winn.cable.ntl.com) |
17:33.58 | thinair | zhobbs, ok thanks. I believe for my problem, I actually need just to extend a view... |
17:34.50 | wastrel | what happens if you receive a call while the screen is flipped up? |
17:36.48 | Disconnect | wastrel: it catches fire |
17:37.00 | Disconnect | hopefully that'll be fixed in the next release |
17:37.22 | *** part/#android fgau (n=fgau@webbox1220.server-home.net) |
17:39.04 | wastrel | what i mean is, do you have to close it before you take the call? |
17:39.56 | wastrel | also, will this work with the g1? http://www.thinkgeek.com/gadgets/cellphone/8928/ |
17:42.25 | *** join/#android AttractiveApe (n=phil@office.gossamer-threads.com) |
17:44.01 | *** join/#android cbeust (n=cbeust@72.14.228.1) |
17:48.27 | *** part/#android dartdog1 (n=Tom@75.139.42.87) |
17:53.27 | *** join/#android cybereagle (n=cybereag@unaffiliated/cybereagle) |
18:04.04 | *** join/#android Terdhex1 (n=ENRIQUE@host-208-68-238-61.biznesshosting.net) |
18:04.45 | *** join/#android romainguy_ (n=gfx@nat/google/x-3aedfb52ed742b4d) |
18:09.08 | jasonchen | enjoys the newest Palin nickname: Snowjob Squareglasses |
18:13.56 | *** part/#android Terdhex1 (n=ENRIQUE@host-208-68-238-61.biznesshosting.net) |
18:14.26 | *** join/#android nivardus (n=gontaMal@unaffiliated/nivardus) |
18:19.33 | muthu | alert dialog multi choice is broken |
18:19.45 | muthu | only a few items are showing as checked |
18:22.21 | pjv | muthu: are you using a loop or something to check them? |
18:22.36 | muthu | i pass a cursor |
18:22.48 | muthu | and the checkedcolumn |
18:23.08 | muthu | public AlertDialog.Builder setMultiChoiceItems(Cursor cursor, String isCheckedColumn, String labelColumn, DialogInterface.OnMultiChoiceClickListener listener) |
18:23.39 | muthu | it brings up all items, but only a few are checked |
18:23.54 | pjv | well I have had problems with a loop before with multi choice, but it wasn't an AlertDialog and it wasn't a cursor |
18:24.11 | muthu | yeah, looks like refresh issues |
18:24.27 | muthu | its a bug |
18:26.14 | muthu | guess, i'll have to do the array manually |
18:43.59 | feig | anybody know if the bluetooth stack they are using is bluez? if so, if there is any reason why a2dp wouldn't work if it had a little help? |
18:44.16 | *** join/#android woski (n=dleme@65.182.51.67) |
18:44.19 | pjv | feig: I think it is bluez |
18:44.31 | feig | that's good to hear |
18:44.59 | pjv | a2dp "works" but they didn't have the API ready, so they don't "allow" devs to write to it atm, or at least thats how I understand it |
18:45.11 | feig | oh |
18:45.25 | feig | well, that could be gotten around with mplayer and xterm |
18:45.26 | pjv | correction: all of bluetooth |
18:45.27 | feig | right? |
18:45.56 | pjv | Android is only at the level of the Java language (i.e. within Dalvik) atm |
18:46.45 | feig | so, some sort of terminal emulator couldn't be written for android to get at the OS? |
18:47.20 | pjv | code.google.com/android has many of the answers |
18:47.51 | Lenolium | feig: a terminal emulator may let you get at a shell, but the API's are still only exposed to Java AFAIK. |
18:49.05 | feig | so, you wouldn't have any more access to the hardware from a shell? |
18:49.15 | pjv | doesn't understand why someone needs to get below the Java layer (except to create a richer Java layer) |
18:50.45 | pjv | feig: adb access is a different matter |
18:51.51 | feig | adb? |
18:52.32 | pjv | code.google.com/android has many of the answers |
18:53.58 | feig | <PROTECTED> |
18:54.07 | feig | is looking |
18:58.22 | Disconnect | pjv: as far as why/advantages.. you could use whatever-jni-android-eventually-supports to (eg) create a blank work area in java, then spawn mplayer overtop of it. (you'd have to be careful with signals and such but its doable) |
18:58.40 | Disconnect | or not having to recode an ssh client (and maintain it) when openssh works just fine |
18:59.16 | Disconnect | needs vpn tho, thats a more difficult problem - at least according to the security doc - because it requires root access to add/remove routes, etc.. |
19:00.14 | pjv | Disconnect: you seem to be much more lenient then me :-D |
19:00.28 | Disconnect | ? |
19:01.09 | pjv | well, I'd rather not say the things that might just be possible |
19:01.24 | pjv | but don't belong to the current Android policy |
19:02.20 | Disconnect | pjv: ..so who do i send the bulk of existing, useful tools to for porting? :) i'll start with openvpn, ssh client and mplayer, since they don't have big security implications (sshd) |
19:02.25 | feig | i asked becuase on my n800, i spend most of my time in xterm, and much of it using mplayer, but i also use ssh, and many other cli apps |
19:02.36 | feig | and i'd like to replace my n800 with the G1 |
19:02.41 | pjv | Using openssh as a backend seems reasonable to not reinvent the wheel but surely just putting the interface of openssh on android wouldn't suffice |
19:02.58 | Disconnect | sees no reason to reinvent the wheel 100 times over when a ton of those apps already exist and just need android-aware java wrappers |
19:03.21 | pjv | a bit more than wrappers |
19:03.37 | pjv | some of these apps need to get an entirely new philosphy |
19:04.03 | Disconnect | openvpn - if the bin is suid, all you need is a wrapper to do configs. (and an "import from file" button for people using old configs or configs provided by - eg - IT depts) |
19:04.21 | pjv | one of compatibility, mobile restrictions awareness, open and usable interfaces, ... |
19:04.38 | pjv | your approach is to technical |
19:04.50 | Disconnect | mplayer .. its -perfect- for embedding. you can tell it "ok here is the framebuffer, your space is from 10,10 to 635,400" or you can just wrap up the libs and use it that way |
19:05.25 | *** join/#android guerby (n=guerby@195.174.71-86.rev.gaoland.net) |
19:05.30 | jasta | in the case of the Linux network stack I agree with you, in the case of mplayer I don't :) |
19:05.40 | pjv | you can't just port apps from a desktop to a mobile, that was never Google's intention, that's why they created a new high-level layer above all this |
19:05.57 | jasta | i don't like the idea of introducing network sophistication at any layer above netfilter/route. So VPN clients should be implemented there. |
19:06.04 | Disconnect | jasta: mplayer (on arm) supports a -ton- of APIs. how many of those are you going to port over to the android API? |
19:06.08 | feig | pjv there are tons of embedded linux devices out there that use many of these apps well |
19:06.12 | feig | like the n800 |
19:06.12 | pjv | as I said, you can build this layer on the lower stuff, like bluez, but that's not porting |
19:06.22 | pjv | feig: and they are all wrong |
19:07.14 | Disconnect | pjv: thats awesome. lemme guess - you don't use any "wrong-thinking" commercial apps ever, right? |
19:07.14 | *** join/#android bdjnk (n=bdjnk@71-212-56-11.tukw.qwest.net) |
19:07.17 | feig | what's wrong about them? |
19:07.49 | pjv | nothing's perfect, but we can always aspire... :-) |
19:08.24 | Disconnect | explain to me the purpose behind throwing out a pile of small, fast, arm-friendly fp-free codecs (sorry, i said API earlier) and rewriting them..? |
19:08.50 | pjv | don't throw them out but hide them in a lower layer |
19:09.03 | pjv | maybe Android already uses them? |
19:09.07 | *** join/#android rorist (n=rorist@58.101.3.213.cust.bluewin.ch) |
19:09.45 | pjv | Disconnect: if all these libraries/tools are so great, why are there so little decent Java wrappers for them anyway? |
19:10.41 | feig | because i don't think that there are too many stacks similar to android |
19:10.41 | pjv | Disconnect: no hard feelings but it sounds to me you'd prefer closing the linux - Android/Java gap, while I'd prefer building on top of the Android/Java layer with the tools you provide |
19:10.47 | pjv | nothing incompatible there |
19:11.15 | feig | unless linux is not accessible |
19:11.49 | pjv | as long as you don't bypass the Android/Java layer ofcourse |
19:12.04 | pjv | feig: think it will be when the source code is out |
19:12.37 | feig | well, i can hope i guess, because if it's not there, then this might be a huge waste of money for me |
19:22.02 | Disconnect | sorry back now |
19:22.16 | Disconnect | anyway :) |
19:23.16 | Disconnect | there are very few java wrappers for (eg) mplayer because there are very few platforms that can't use a native wrapper (X/win32/cocoa/gtk/..) |
19:23.28 | *** join/#android cbeust (n=cbeust@64-142-66-175.dsl.static.sonic.net) |
19:24.02 | Disconnect | and in both cases (mplayer, openvpn) they are designed to be spawned from a gui (including non-forking modes, gui-friendly outputs/inputs, etc) |
19:25.07 | pjv | what are your plans with openssh, openvpn, mplayer exactly? |
19:26.33 | feig | to use them =) |
19:27.17 | feig | no need for anything but xterm with openssh and mplayer, why would you want to add a bunch of extra stuff on top of apps that run well from the terminal? |
19:28.40 | pjv | just realizes that releasing the source code will spawn a terrible stampede of people who will misuse, deform and reduce the platform to a mere linux distribution in any way they see possible :-D |
19:29.01 | feig | why is that a bad thing? |
19:29.28 | feig | what's so great about running everything in a JVM? |
19:29.37 | Disconnect | openssh - connect to other boxes. (although there is a passable j2me ssh client, and i heard someone here talking about having implemented one for android) .. |
19:29.43 | *** join/#android cbeust_ (n=cbeust@72.14.224.1) |
19:30.23 | *** join/#android mazzen (n=mortel@u30-237.dsl.vianetworks.de) |
19:30.39 | Disconnect | openvpn - access to work, home resources that are locked away safe. (same reason that most big mobile platforms have the usual big vpn clients - cisco, pptp/ms, etc.. and those are also pre-written and easy to wrap up with an android service) |
19:30.47 | *** join/#android schmylan (n=schmylan@38.114.107.1) |
19:31.11 | kslater | there is an android ssh client already - ConnectBot |
19:31.22 | kslater | problem is - how do you input a Ctrl key? |
19:31.39 | Disconnect | mplayer (either the full cmdline app or the playback libs and codecs) .. plain and simple: pre-made support for dozens (at least) of codecs. ready to go, already written, already fp-free, already tested on arm |
19:31.40 | kslater | as in ctrl-l or ctrl-d or ctrl-z |
19:32.09 | Disconnect | kslater: generally thats handled on small kbs with 'fn' if available |
19:32.24 | Disconnect | (or symb, or - worst case - with a soft button onscreen that says "CTRL") |
19:33.16 | kslater | I can test it in the emulator |
19:34.49 | kslater | doh |
19:34.56 | kslater | no fn key |
19:36.31 | pjv | afk |
19:39.39 | *** join/#android schmylan_ (n=schmylan@38.114.107.11) |
19:39.48 | *** join/#android unix_lappy (i=614133e2@gateway/web/ajax/mibbit.com/x-259dd779f33a4329) |
19:50.41 | zhobbs | too bad muthu is asleep, he'd probably freak out: http://imandroid.blogspot.com/2008/10/htc-g1-coming-to-india.html |
19:53.36 | jasta | lol |
19:53.41 | unix_lappy | zhobbs: makes me suspicious. |
19:54.20 | unix_lappy | "before 2009" makes me think that the US will get a second device before the Dream hits other countries. |
19:54.45 | zhobbs | I'd be surprised if it's real |
19:55.30 | unix_lappy | If someone from Google would say, "Dude, just buy the G1, we havent gotten around to supporting any other devices..." |
19:55.34 | unix_lappy | i'd be one happy camper. |
19:56.07 | zhobbs | all they need is an onscreen keyboard and internationalization |
19:56.22 | tethridge | they aren't going to say that. Sprint has an android phone launching before the end of the year. :-) |
19:57.04 | zhobbs | tethridge: really? you think there will be another in 2008? |
19:57.08 | tethridge | ... that's what has been reported as the rumor |
19:57.13 | zhobbs | I hope so |
19:57.47 | unix_lappy | tethridge: lol, putting down money on the table based on rumors have made many a prince a pauper. |
19:58.29 | tethridge | well, it's sprint, so I wouldn't bet on it, but that's the rumor I heard on engadet |
19:58.49 | tethridge | sprint could use a top selling phone right now |
19:59.08 | Disconnect | thought spring was saying 1Q09 or later |
20:00.19 | tethridge | http://www.engadget.com/2008/09/17/t-mobile-g1-said-to-be-landing-october-17th-sprint-android-phon/ |
20:00.52 | tethridge | see the second half of the post |
20:01.03 | feig | <PROTECTED> |
20:01.24 | unix_lappy | well, i could care less about other carriers, i'm talking about devices. |
20:01.41 | unix_lappy | if sprint is going to launch an Android Phone it's likely going to be the Touch Diamond [Pro] |
20:01.52 | tethridge | well, it says that it will have "other functionality", which I would assume means different device |
20:02.01 | feig | but there was also speculation that suggested that we wouldn't see an android/wimax device until late 2009 |
20:02.56 | unix_lappy | wonders what happened to all the "Openness" |
20:04.23 | romainguy___ | unix_lappy: how so? |
20:05.27 | zhobbs | unix_lappy: does samsung make a lot of sprint phones? |
20:05.42 | tethridge | yeah |
20:05.49 | tethridge | that's what I have |
20:05.51 | unix_lappy | romainguy___: was just being facetious, regardless of how "Open" things are [public] companies arent going to disclose future endeavors. |
20:05.54 | tethridge | samsung from sprint |
20:06.15 | romainguy___ | unix_lappy: nobody ever said that the manufacturers would publicly show their roadmaps :) |
20:06.16 | romainguy___ | Android is open |
20:06.27 | Disconnect | ..android -will be- open |
20:06.32 | unix_lappy | zhobbs: yes, for a similar device to the iPhone, check out the Samsung Instinct. |
20:06.43 | zhobbs | yeah, samsung is in OHA right |
20:06.49 | Disconnect | unix_lappy: istr the instinct was a disaster of crashieness |
20:07.00 | unix_lappy | romainguy___: was just being facetious ;-) |
20:07.45 | *** join/#android pawalls (n=pawalls@fnord.rabidgeek.com) |
20:08.19 | unix_lappy | the real question is, whether the software developers have started coding for other devices that the device manufacturers havent publicly disclosed. |
20:12.00 | Disconnect | that still doesn't entail not being open.. |
20:12.56 | Disconnect | isn't 100% with them, but the rule around here seems to be "its open if we release sometime around when the device arrives" (rather than - at least - "if we release when he device sells/announces/releases") |
20:14.52 | feig | to me, open doesn't include locking users out of the underlying tools, which can be extremely useful on their own |
20:18.38 | Disconnect | didn't see it locked out anywhere... |
20:19.11 | Disconnect | but evidently you have a device and have tried this? (also, android-device is not android, any more than all windows pc's are made by microsoft..) |
20:22.12 | feig | i thought that the discussion above was related to not allowing us to use native linux apps without a java wrapper |
20:22.37 | harrdawg | <PROTECTED> |
20:24.50 | feig | Disconnect, did i make a bad assumption somewhere? |
20:25.53 | Disconnect | yep. you assumed it was a closed platform. its not. currently JNI works (although its not supported, and word is it -will- break when the supported flavor comes out) |
20:26.17 | Disconnect | but i am pretty sure it doesn't allow root (sigh, so much for vpn clients and such) |
20:29.53 | feig | well, i'll just have to be patient i guess, and suffer through the reduced functionality (lacking a2dp and tethering) until it gets figured out |
20:30.07 | *** join/#android krau (n=cktakaha@200.184.118.132) |
20:32.02 | Disconnect | or grab the sdk and emulator and try it. |
20:33.07 | feig | will do |
20:33.15 | *** join/#android unix_lappy (i=614133e2@gateway/web/ajax/mibbit.com/x-852de4a61eb394f7) |
20:33.22 | chouman82 | anyone worked with phonestatelistener? |
20:33.50 | plusminus_ | think so (btu got no code here) :P |
20:36.00 | *** join/#android meoblast001 (n=meoblast@dynamic-acs-24-239-93-241.zoominternet.net) |
20:37.35 | *** join/#android chab7 (n=kvirc@212.92.4.114) |
20:38.55 | *** join/#android zmedico (n=zmedico@ip68-4-152-120.oc.oc.cox.net) |
20:40.45 | pjv | can I have your views on an ideal logical architecture for a larger android app? |
20:41.00 | pjv | talking about the layers here (ui, domain, techservices) |
20:41.27 | pjv | and more specifically how to deal with the MVC pattern |
20:41.50 | pjv | (or model-view separation if you want to call it that) |
20:42.16 | *** join/#android Adamant (n=Adamant@c-98-244-152-196.hsd1.ga.comcast.net) |
20:43.10 | pjv | a problem is that Activities are rather dependent on ContentProviders (or their cursors) |
20:43.47 | pjv | this is good (it's the Observer pattern) but it somewhat makes me want to put too much domain stuff in the Activities as well |
20:44.31 | pjv | ContentProviders would be in the lowest (techservices) layer while Activities are in the topmost (ui) layer |
20:46.08 | pjv | or doesn't anyone do layer separation anymore these days? |
20:47.05 | jasta | you could do your own layer separation without asking android to get more fine than services activites and contentproviders |
20:47.38 | jasta | their abstractions are all about process lifecycles, your abstractions are about logic, data, and presentation isolation. they aren't that dependant on one another if you design your code properly. |
20:48.07 | pjv | so you agree it is possible to separate cleanly? |
20:48.31 | jasta | yes, independent of android's layering |
20:48.39 | umdk1d3 | o.o |
20:48.43 | umdk1d3 | romainguy___: you around? |
20:48.46 | pjv | how do you cope with having multiple controlling points (the different activities) instead of one central controller? |
20:50.01 | pjv | see, Android puts the "main method" (if I can take the liberty to call it that) in each of the Activities |
20:50.47 | pjv | so every Activity generally takes control of it's own dependant domain, persistence, ... and then passes the control on to the next Activity if you switch Activities |
20:51.20 | pjv | rather than having one Controller (as to MVC) that steers which views/activities should be shown |
20:52.22 | pjv | there is also the problem of Context only being available in the Activities |
20:53.48 | pjv | how could we take control out of the activities? |
20:54.12 | pjv | ok, this is all rather abstract I know, let me think of an example |
20:54.27 | jasta | it's just an interface inversion, but it's not a different model. each window in any UI is responsive for itself. a controller asserts itself only as far as the window is made aware of it. |
20:55.56 | pjv | just a sec, you speak of windows instead of activities, are we talking at the same abstract level (I'm not talking about basic UI stuff)? |
20:57.44 | *** join/#android BBHoss (n=bbhoss@webmail.durhamadvertising.com) |
20:58.16 | jasta | i'm saying that the analogy of an activity in other UI toolkits is a window |
20:58.37 | pjv | yes |
20:59.02 | pjv | but windows in other ui toolkits don't generally have the possibility to generate a list from a db |
20:59.34 | pjv | and other windows (widgets) aren't generally given the power to open the next window |
20:59.54 | pjv | there's usually a controller that has this power |
21:00.16 | pjv | while activities are pretty much siblings passing on the focus |
21:00.30 | pjv | activities have a bit more control I think |
21:00.57 | pjv | also the "main method" can be in an activity, but normally not in other windows |
21:02.05 | pjv | heh for smaller apps you wouldn't even need anything else than activities, while in other toolkits you would still need a lot more structure that can show windows |
21:02.41 | *** join/#android raven_coda (n=raven_co@64.50.35.156) |
21:03.46 | tomgibara | pjv: My advice is not to try and attach your understanding of the Android framework to something else |
21:03.57 | tomgibara | Just learn it as what it is. |
21:04.30 | raven_coda | does anyone know if the g1 has a digital compass or does it just use accelormeters for street view compass mode? |
21:04.41 | pjv | good advice, but still .. I want to create order where there is disorder |
21:05.20 | tomgibara | pjv: The engineers have given you the order! :) |
21:05.22 | jasta | i think that you don't understand MVC at all, actually |
21:05.35 | pjv | for larger apps, I really have no idea ( even in the Android way) of how I would keep insight in which Activity should do what |
21:05.42 | jasta | it's an abstraction, it has no concrete manifestation in how processes manage their lifecycles |
21:06.27 | tomgibara | warning contentious view coming up: the MVC is a useless crutch - forget about it and practice thinking about different problem domains |
21:06.53 | jasta | i'm not going to fight that, but MVC isn't his problem at the moment anyway. |
21:07.12 | pjv | tomgibara: ok I might agree, I don't think it will be possible to take the control away from the Activities |
21:07.22 | jasta | thinking abstractly about classes and how they interact is. |
21:07.45 | pjv | jasta: no problem, only feed for discussion (and hope we all learn something) |
21:08.04 | jasta | pjv: so, if you have a window in an abstract sense on any other toolkit |
21:08.24 | jasta | and you want that window to show a list of foobars, and when the user clicks a foobar, you want to show them information about that foobar's bazzle |
21:08.30 | jasta | how would you hook up those mechanics, in general? |
21:08.30 | pjv | can anyone of you two enlighten your high-level (architecture-level) design |
21:08.45 | jasta | using whatever layered approach you want |
21:09.15 | *** join/#android duey (n=duey@203.96.223.40) |
21:09.34 | tomgibara | pjv: I'm not sure U understand the question - I'll answer it if you can explain |
21:09.36 | pjv | jasta: agree, you choose the layers (or it shouldn't even be layers) |
21:09.42 | tomgibara | U==I |
21:10.24 | jasta | pjv: be more specific, what would you do to, for example, get the list of foobars? |
21:10.48 | pjv | I wasn't exploring this at a particular example or detailed level at all, but.. |
21:11.23 | jasta | well, you weren't even thinking about it at all. you're talking about a controller class having "power" over your application's lifecycle, and i'm telling you that it is this way only through the architecture of your UI |
21:11.46 | jasta | it's an abstraction that is way beyond the classes that implement the UI, the data storage, etc. |
21:13.12 | pjv | jasta: can you explain 'your' architecture of a UI? that could be a start to converge our ideas (and words) |
21:16.39 | tomgibara | pjv: The Android architecture has been moulded by it's requirements. The architecture of your app will also be moulded by its requirements. One of which is the fact that it runs on Android and is implemented in Java, the rest of which will be what distinguishes your application from other Android applications. |
21:19.13 | pjv | tomgibara: I agree, but you don't really add a new idea/insight to the discussion, I'd like to discuss that "rest" part |
21:19.42 | pjv | there's a big step between requirements and having a good design |
21:20.48 | pjv | maybe I should try again: |
21:21.23 | pjv | a big requirement for me would be to have a separation between ui and domain, so I could put a new ui on top of the same domain easily |
21:21.42 | pjv | how can I get nearly anything domain-related out of my Activities? |
21:22.20 | tomgibara | seems like odd priorities to me: |
21:22.42 | tomgibara | An Activity as its name implies allows someone to do something - you want to divorce your activity from the thing they are doing it with? Is that correct? |
21:23.12 | pjv | divorcing may be one of the solutions yes |
21:23.16 | pjv | yes thats about it |
21:23.22 | tomgibara | I'm not saying its a bad idea - but it depends fundamentally on the activity behaviour you are trying to encapsulate |
21:23.54 | pjv | I'm talking general her, so assume the behaviour warrants it |
21:23.57 | tomgibara | How one might do this for one 'type' of activity will surely be dependent on another |
21:23.57 | pjv | *here |
21:24.17 | pjv | you mean like ListActivities will be harder? |
21:24.57 | tomgibara | *another -> specifics (don't know what happened to my brain then) |
21:25.10 | tomgibara | That isn't what I mean |
21:26.13 | tomgibara | Give me any example of an actual concrete activity that you might envision abstracting in this way |
21:26.16 | morrildl | pjv: an Activity is a single thing that you can do in a UI |
21:26.33 | morrildl | pjv: ...or not even UI. Activities don't have to ever display anything |
21:26.42 | morrildl | an Activity is a unit of work. It's a class with a lifecycle |
21:26.44 | pjv | maybe I'd rather hold out on examples for the moment |
21:26.45 | morrildl | that's it |
21:27.26 | tomgibara | The problem is - and I think morrildl makes this point again - is that activities lend themselves to concreteness |
21:27.47 | tomgibara | an Activity is a single thing that you can do in a UI <-- A great description |
21:28.08 | pjv | morrildl: I see where you're going at, you could also say an Activity is a controller rather than a UI widget |
21:28.15 | pjv | is that it? |
21:28.35 | tomgibara | mutters bloody MVC |
21:28.42 | morrildl | pjv: no |
21:28.54 | morrildl | pjv: An Activity is a class with a lifecycle |
21:28.57 | romainguy___ | MVC sucks :) |
21:28.58 | morrildl | it's a managed object, no more no less |
21:29.05 | morrildl | don't read into it more than that |
21:29.09 | morrildl | you can do whatever you like with it |
21:29.14 | romainguy___ | I find the Presentation Model pattern much easier to use and implement |
21:29.16 | morrildl | most of the time you use it to cretae UIs |
21:29.41 | pjv | romainguy___: care to elaborate? |
21:30.11 | romainguy___ | I found that in practice MVC, at least pure MVC, takes way too much effort to design and maintain properly |
21:30.19 | pjv | morrildl: ok, so I shouldn't talk about the architecture I envision and an Activity in the same way/sentence |
21:30.21 | romainguy___ | for, very often *in my experience*, little advantage |
21:30.50 | romainguy___ | that's actually why you often see bastard MVC, like Swing's M-VC |
21:32.48 | pjv | I'm not familiar with the Presentation Model Pattern so I should read about it first probably... |
21:33.00 | pjv | http://www.componenthouse.com/article-5 right? |
21:33.16 | pjv | and http://weblogs.macromedia.com/paulw/archives/2007/10/presentation_pa_3.html |
21:33.32 | tomgibara | Actually there can be some terrific advantages - if you need them - but again it depends on the concrete problem you are trying to solve. MVC imho almost a non-pattern, some problem domains just lend themsleves to an 'isomorphic' decomposition along these lines |
21:33.55 | morrildl | pjv: if you want to use an Activity as a controller, there's no hypothetical reason not to |
21:34.11 | morrildl | pjv: depending on your design, maybe that makes sense (although I'd be somewhat skeptical) |
21:34.22 | romainguy___ | tomgibara: there are terrific advantage in theory |
21:34.35 | romainguy___ | tomgibara: that's why I said that in my experience, these advantages are not really advantages |
21:35.25 | pjv | morrildl: I agree, just don't want to 1) have a central controller as well to get a grip on where all the signals are going, 2) rather not have the Activity be the controller and the UI at the same time I suppose, but that's just intuition atm |
21:36.02 | tomgibara | romainguy___: I've actually built UI's with pure MVC - it really can be excellent, but requires lots of discipline that is rarely woth the reward. |
21:36.18 | romainguy___ | tomgibara: me too, and we agree then :) |
21:36.36 | pjv | but I'm getting the feeling at least we are agreeing on the motives: separation of concerns, and coupling/cohesion |
21:36.36 | morrildl | pjv: since Activity is a managed/lifecycle object, you don't want to use one except where you want the object to have its lifecycle managed by the system |
21:36.37 | romainguy___ | that's why I'm happier using MVP or Presentation Model |
21:37.26 | pjv | morrildl: exactly why I would get stuck probably, doing a Singleton pattern on an Activity wouldn't work |
21:37.34 | pjv | but now you understand where I'm coming from |
21:38.15 | romainguy___ | that said |
21:38.33 | romainguy___ | given the scope of cell phones applications, using fancy patterns like MVC/MVP/whatever can be easily overkill |
21:38.46 | *** join/#android borism (n=boris@195-50-200-6-dsl.krw.estpak.ee) |
21:39.29 | morrildl | romainguy___: "can be easily" -> "is usually" |
21:39.33 | morrildl | there I fixed that for you |
21:39.46 | romainguy___ | :) |
21:40.34 | pjv | how is the MVP pattern any different from what we are already doing? |
21:40.48 | pjv | seems like Activities would perform the roles of V and P |
21:40.49 | tomgibara | romainguy___: The compromise needs to be made. When I downloaded the first public SDK and examined the classes, I initially felt a little disappointed at what I percieved as a lack of purity in the API design. After using it for just a couple of days, I completely changed my mind - the tradeoffs are worth it - the APIs are extremely well suited to the task at hand. |
21:40.59 | pjv | and many activities would dig into the M (domain) |
21:41.10 | romainguy___ | tomgibara: :) |
21:41.19 | pjv | tomgibara: me too |
21:41.32 | *** join/#android mr_daniel (n=sysrq@e177155150.adsl.alicedsl.de) |
21:41.37 | pjv | tomgibara: but there's no harm in thinking it through, right? |
21:41.41 | romainguy___ | tomgibara: Sun's APIs are usually a good example of API design purity that just ends up being awful to use :) |
21:41.54 | tomgibara | I still think Context is a monster |
21:42.09 | tomgibara | (not bad just bloated) |
21:42.20 | pjv | everything's a trade-off, and especially on mobiles I expect that trade-off to approach usability rather than theory |
21:43.25 | romainguy___ | tomgibara: I would have said that View is a monster :) |
21:43.38 | tomgibara | romainguy___: Many of Sun's APIs do the worst thing: aim at purity, then compromise, then end up with neither purity or efficacy |
21:43.48 | romainguy___ | :) |
21:44.06 | romainguy___ | although I have to admit they often get one thing right: they make it possible *and* relatively easy to extend/override/customize |
21:44.41 | vinse | Calendar.getInstance().get(Calendar.DAY_OF_MONTH) says what are you talking about, Sun APIs are great! |
21:45.02 | romainguy___ | that's an easy jab :) |
21:46.54 | tomgibara | romainguy___: I like the style that developed of clean interface based designs, with concrete state classes, backed by separate impl packages |
21:46.56 | pjv | tomgibara: the problem with Context for me is mostly that it belongs with the activities (and services etc.) |
21:47.16 | romainguy___ | well an Activity is a Context :) |
21:47.52 | pjv | romainguy___: succinct as ever |
21:48.00 | pjv | ;-) |
21:49.59 | pjv | romainguy___: I still would like your view on how MVP (or any pattern that would do) could improve the spaghetticode I am (we all are?) writing atm |
21:50.23 | tomgibara | One last comment about Sun's Java APIs: You have to give them credit for getting better at designing the libraries |
21:50.27 | romainguy___ | oh it would probably not help much :) |
21:50.39 | romainguy___ | tomgibara: yeah, some of the APIs are actually awesome |
21:50.43 | tomgibara | (but I'll never forgive them for the logging API) |
21:50.44 | romainguy___ | java.util.concurrent \o/ |
21:50.53 | romainguy___ | logging's logging |
21:50.57 | romainguy___ | it's boring, who cares :) |
21:51.37 | tomgibara | I wish I could have the same cheerie attitude to towards it :) |
21:52.01 | romainguy___ | I never understood the craze around logging |
21:53.52 | tomgibara | because when some important user calls the MD directly and tells them that they can't log on to the web app, even though 20,000 other people already have that day - you need ammunition |
21:54.04 | romainguy___ | don't get me wrong |
21:54.08 | romainguy___ | I understand the importance of logging |
21:54.25 | romainguy___ | what I don't understand is the endless debates around it |
21:54.29 | romainguy___ | and all the different frameworks |
21:54.31 | romainguy___ | and the flamewars |
21:54.34 | romainguy___ | and all the articles |
21:54.38 | tomgibara | right, you mean the obsession about the mechanics of it :) |
21:54.44 | romainguy___ | right :) |
21:54.51 | morrildl | I'll never forgive sun for JNDI |
21:55.04 | romainguy___ | ahah :) |
21:55.06 | morrildl | or EJB |
21:55.11 | pjv | ;-) |
21:55.19 | tomgibara | EJB *shudder* |
21:55.32 | pjv | whats wrong with EJB? |
21:55.32 | romainguy___ | well EJB were not *that* bad when you didn't try to use them everywhere :) |
21:56.06 | pjv | it's a perfect example of good theory, but very complex practice |
21:56.17 | pjv | as are most good things ;-) |
21:57.14 | romainguy___ | EJB is a monster child of MVC :p |
21:57.17 | tomgibara | I taught myself some really valuable lessons from EJBs and my own misguided attempts at comparably abstract designs. |
21:57.40 | pjv | I was going to say: like MVC on Android... |
21:58.10 | tomgibara | I distilled it into one very simple lesson: There are libraries and there are frameworks. |
21:58.18 | tomgibara | Libraries empower you to do things. Frameworks stop you from doing things. |
21:58.21 | pjv | many good architectures go terribly wrong if you try to use them everywhere: like agents |
21:58.34 | tomgibara | You need both, but don't mix them. |
22:01.06 | pjv | "In theory, there is no difference between theory and practice. But, in practice, there is." |
22:07.27 | *** join/#android KenBW2 (n=kenbw2@80-192-186-72.cable.ubr07.pres.blueyonder.co.uk) |
22:07.36 | KenBW2 | how do i run the SDK? |
22:08.01 | Adman65 | easiest way is through eclipse |
22:08.18 | KenBW2 | yea, that's what im trying to figure out |
22:08.37 | Adman65 | did you download the sdk for your platform and the plugin for eclipse? |
22:08.39 | tomgibara | pjv: back to your design concerns: If you do as morrildl described, and write activities as "single things that the user can do" and furthermore, keep your activities simple enough to be usable on a mobile, how much spaghetti code do you think you could pack into a single activity? |
22:08.47 | *** join/#android Dralspire419 (n=dralspir@55-96.126-70.tampabay.res.rr.com) |
22:08.51 | KenBW2 | Adman65: yup |
22:09.04 | KenBW2 | and ive gone through all the procedure described at the Android site |
22:09.17 | Adman65 | have you created the hello world ap? |
22:09.19 | KenBW2 | it just doesn't mention how to actually run it |
22:09.29 | KenBW2 | no, i just want to play with the demo |
22:09.38 | Adman65 | run -> run configurations |
22:09.45 | Adman65 | then select android app, select the right activity, then run it |
22:10.08 | umdk1d3 | well crap :/ it appears that dmca might not cover my butt on this reverse engineering stuff |
22:10.12 | pjv | tomgibara: hmm, you'd be surprised, I expect we shall see quite a bit of spaghetticode in some years time |
22:10.21 | umdk1d3 | considers moving to servers in germany |
22:10.31 | KenBW2 | "Error: Path must only have one segment" :S |
22:10.51 | Adman65 | did you set up the path to the sdk in the perferences |
22:10.52 | pjv | but I think my approach was mostly one of "I have some Android experience now, but I keep reinventing the wheel, better decide once and for all" |
22:10.55 | tomgibara | pjv: Actually, in truth, I probably wouldn't! |
22:11.08 | KenBW2 | "The SDK"? The root folder? |
22:11.38 | pjv | see Android has lots of freedom, but maybe it would be time to fixate into one way of doing things |
22:11.39 | Adman65 | ya, whever you placed it on your system |
22:11.42 | KenBW2 | Adman65: /home/kenneth/Transfers/Inbox/Deposit/android-sdk-linux_x86-1.0_r1 <-- that's what i have atm |
22:11.55 | tomgibara | pjv: This is the crux: you've produced several similar wheels, now identify how to abstract them |
22:12.02 | Adman65 | did you add an entry to your .bashrc? |
22:12.08 | KenBW2 | no? |
22:12.11 | pjv | tomgibara: like: where shall I place my preferences? |
22:12.17 | tomgibara | The point is that there's no blanket answer, because we're all turning out different wheels |
22:12.18 | Adman65 | gotta do that too |
22:12.30 | pjv | I haven't decided yet, seems like arbitrary to me, thats why I'm asking some insights |
22:12.33 | tomgibara | pjv: classic example |
22:12.36 | Adman65 | its on the android website as well |
22:12.41 | *** join/#android Dralspire981 (n=dralspir@55-96.126-70.tampabay.res.rr.com) |
22:12.48 | KenBW2 | Adman65: just chuck the path at the bottom of the file? |
22:13.12 | tomgibara | I generally put them in a PreferencesActivity, but I've also written a game, in that case I designed a nice animated settings screen |
22:13.19 | Adman65 | Ya, export PATH=${PATH}:/usr/share/android/tools |
22:13.20 | tomgibara | It depends on the task at hand |
22:13.23 | Adman65 | that's what mine is |
22:13.25 | pjv | tomgibara: surely there are things to say, e.g. one is better than the other |
22:13.31 | pjv | (was only an example) |
22:14.50 | Adman65 | i'm working on a practice app for myself, a simple internet radio player |
22:15.01 | Adman65 | anyoen have a good example of usings tab in an xml file? |
22:15.31 | tomgibara | pjv: Things to say: producing the game settings was more work, but worth it to make a consistent UI |
22:15.37 | pjv | tomgibara: I'm starting to think I should leave the Activities alone and just make sure I use a rigid way of making them call upon eachother |
22:16.00 | KenBW2 | Adman65: still happening |
22:16.06 | pjv | and then have multiple calls going into the domain |
22:16.09 | Adman65 | hmmmm |
22:16.23 | KenBW2 | Adman65: PATH=${PATH}:/home/kenneth/Transfers/Inbox/Deposit/android-sdk-linux_x86-1.0_r1/tools is what i have in .bashrc |
22:16.36 | tomgibara | pjv: rigid? |
22:17.02 | Adman65 | hmm very odd |
22:17.16 | KenBW2 | Adman65: what does the error mean |
22:17.22 | Adman65 | you can try running it from the command line like described in the documents? that may give you some greater insight into what's happening |
22:17.39 | *** join/#android pedro_mg (n=pedromg@89.214.141.27) |
22:17.44 | pjv | tomgibara: I still need to work it out, but have a consistent way of Activities talking to eachother |
22:17.47 | Adman65 | Sounds like something is wrong with the Path |
22:18.01 | pjv | part of my disorder is that ACtivities are interconnected in many ways |
22:18.05 | pjv | some use startActivity |
22:18.11 | Adman65 | either Path in eclipse, or the path envrionment variable |
22:18.11 | pjv | others startSubActivity |
22:18.20 | pjv | some use results, others do not |
22:18.39 | pjv | some of the results come as direct in the intent, others deeper in the intent |
22:18.43 | KenBW2 | Adman65: im on Ubuntu installed with Wubi if that should mean anything |
22:18.52 | pjv | and then there are the dialogs, the alarms, the toats, ... |
22:19.14 | pjv | on a very high detail level it boils down to getting consistency in all of this |
22:19.28 | Adman65 | KenBW2: no idea man. Try the command line, it may yeild a better explanation |
22:19.31 | pjv | just to preserve readable code |
22:19.48 | KenBW2 | Adman65: im looking for the command, but can't see it |
22:19.57 | pjv | and code that preferably belongs to the ui as much as possible and doesn't need changing all that much |
22:20.57 | Adman65 | http://code.google.com/android/intro/hello-android.html |
22:20.59 | Adman65 | bottom of the page |
22:21.24 | pjv | the ui part of Android really is too much freedom currently, I'm trying to limit some for myself |
22:21.39 | pjv | another example are the many ways you can get into you app |
22:21.55 | romainguy___ | what do you mean by "too much freedom"? |
22:22.29 | pjv | the lifecycle alone is already quite complex, but you could also enter through any of the activities (if they have intent filters), through services ,... |
22:22.45 | romainguy___ | and that's bad? :) |
22:22.59 | pjv | romainguy___: lot's of things you need to control to avoid bugs |
22:23.13 | romainguy___ | only if you write an activity that can be called in different ways |
22:23.17 | romainguy___ | it certainly doesn't have to |
22:23.31 | romainguy___ | if you don't write the intent filers... |
22:23.33 | pjv | wel, assuming I would want to |
22:23.43 | romainguy___ | well then that's your choice :) |
22:23.57 | romainguy___ | you could write several activities instead, but that makes it easy to reuse activities |
22:24.00 | pjv | true, it is |
22:24.15 | pjv | assume several activities |
22:24.22 | pjv | still need to plug all the holes |
22:24.45 | pjv | assume one would want to do such a complex thing... |
22:25.13 | pjv | I haven't still found a good approach for it to keep it manageable |
22:25.20 | pjv | trade-off here is to avoid code duplication |
22:25.46 | KenBW2 | Adman65: no error on command line. Why is this so much harder than on Windows? |
22:26.11 | Adman65 | I don't know. Works perfectly fine for me on gentoo |
22:26.31 | f00f- | i got a LocationListener in my service, another one in a map, and another one in some activity. should i keep the LocationListener in the Service and bind each activity to my main service? |
22:26.46 | f00f- | centralizing the LocationListener sounds good, but not sure if i really need to do it |
22:26.48 | KenBW2 | Adman65: does Eclipse really need to come into it? it doesnt on Windows |
22:26.53 | pjv | in any case, providing inital freedom is a very good thing (thanks for that!), but at a next stage you should also be willing to take some away (standards!) to get consistency |
22:27.33 | Adman65 | no, it says you can use activitycreator.py to create the program |
22:27.34 | pjv | and keeping your code in a good state also takes some away |
22:27.58 | KenBW2 | Adman65: hang on, Terminal's thrown something at me |
22:28.38 | KenBW2 | Adman65: http://www.nomorepasting.com/getpaste.php?pasteid=20923 |
22:29.52 | Adman65 | I really don't know man. Sorry :( |
22:30.46 | *** join/#android yakischloba (n=jake@c-24-22-171-214.hsd1.wa.comcast.net) |
22:31.17 | f00f- | but perhaps a service connection is too much baggage |
22:31.24 | KenBW2 | Adman65: oh well, thanks anyway |
22:31.42 | Adman65 | sorry man, it shouldn't be complicated. the installation is pretty straightforward |
22:32.09 | pjv | KenBW2: don't you just want to run "emulator"? |
22:32.19 | KenBW2 | pjv: possibly? |
22:32.25 | f00f- | dude |
22:32.29 | f00f- | in windows double-click emulator.exe |
22:32.34 | pjv | KenBW2: do you just wanna see the red phone? |
22:32.39 | f00f- | in *nix, open up a shell and do: ./emulator |
22:32.40 | KenBW2 | pjv: exactly |
22:33.05 | pjv | in android-whatever/tools run ./emulator |
22:33.21 | *** join/#android Dougie187 (n=doug@68.35.245.156) |
22:33.38 | KenBW2 | pjv, f00f-: thanks so much! |
22:34.05 | KenBW2 | Adman65: see pjv's and f00f-'s solution. thanks for the help though :) |
22:34.15 | Adman65 | ah |
22:34.25 | Adman65 | i didn't know if you just wanted to run the emulator |
22:34.41 | f00f- | good luck bro |
22:34.41 | KenBW2 | Adman65: sorry, wasn't being very clear |
22:34.45 | f00f- | enjoy android |
22:34.46 | Adman65 | its all good |
22:34.51 | Adman65 | least you got what you want |
22:35.02 | KenBW2 | Adman65: indeed :) |
22:36.19 | pjv | romainguy___: do you have knowledge of any "About dialog" existing (dialog, component or app)? |
22:36.26 | romainguy___ | no |
22:36.32 | *** join/#android Adamant (n=Adamant@c-98-244-152-196.hsd1.ga.comcast.net) |
22:36.45 | f00f- | haha |
22:36.50 | pjv | many devs would benefit from it and it's being discussed in the androidstandards group to develop one amongst the devs |
22:37.09 | pjv | you know, something like gnome's info window perhaps |
22:37.25 | romainguy___ | sure, go ahead :) |
22:38.19 | *** join/#android Adamant (n=Adamant@c-98-244-152-196.hsd1.ga.comcast.net) |
22:39.03 | KenBW2 | is there a way to add a virtual SD card with music on for the emulator? |
22:39.07 | pjv | gtg, romainguy__, tomgibara, jasta, morrild: thanks for your input |
22:41.19 | romainguy___ | KenBW2: yes, you can use the -sdcard flag to point to a disk image |
22:41.28 | romainguy___ | (emulator -sdcard myimage.img) |
22:41.51 | KenBW2 | romainguy: thanks |
22:42.03 | jasta | romainguy___: so, i think the RemoteView class is missing some functionality... |
22:42.19 | jasta | it should be possible to bind buttons to intents, i think, so that you can implement buttons in your custom notification view |
22:42.37 | romainguy___ | file requests |
22:42.39 | jasta | for instance, i want a "stop" button conveniently available in my music player's "now playing" ongoing notification |
22:42.54 | jasta | right, i was curious before i filed a request if this was even possible remotely? |
22:43.05 | jasta | Intents are parcelable, so this *should* work i think |
22:43.05 | romainguy___ | there's no reason it would not be |
22:45.00 | rayado | That will work in theory, although there are two concerns: |
22:45.32 | rayado | 1. in the notificaiton panel it won't work because that thing traps all the events specifically to enforce that each row is one clickable item |
22:45.37 | rayado | because that's the ui policy |
22:46.23 | rayado | and 2. it needs to be done in the security context of the caller -- not the host of the RemoteView itself |
22:46.27 | jasta | is that a policy that should be revised possibly? i would find this a pretty compelling use case. |
22:46.29 | rayado | but PendingIntent handles that, so it could work in theory |
22:46.35 | rayado | it was a ui decision |
22:46.47 | rayado | they didn't want the notifications crapped up with lots of ui |
22:47.12 | jasta | i agree in general, but why not allow the developer to choose what's appropraite for their apps? again, i think this is a pretty compelling use case. |
22:47.12 | rayado | on a touch device, I can see a pretty compelling argument for what you want, but I also understand their decision |
22:47.30 | rayado | on a non-touch device, it would be awful |
22:47.36 | romainguy___ | jasta: well the notification area doesn't belong to your app |
22:47.38 | rayado | but that's no reason to change that for a touch device |
22:47.43 | jasta | because sliding it down, clicking to open the player, then pressing pause or stop, then back again to go back to what you were doing is too many button pushes |
22:47.47 | romainguy___ | anyway |
22:47.48 | romainguy___ | file a request |
22:47.52 | jasta | i already did |
22:47.56 | rayado | yeah... file a request |
22:48.02 | jasta | issue 948 :) |
22:49.29 | rayado | one thing you can do is to use the notification entry as the pause button |
22:49.41 | rayado | I'm not sure if that's really right in all cases |
22:50.07 | jasta | yeah that doesn't make a lot of sense for the common case of wanting a quick entry into the playlist screen |
22:50.13 | jasta | for example if you want to pick the next track or wahtever. |
22:50.20 | rayado | you could also bring up a non-fullscreen activity |
22:50.25 | rayado | that would make it a little less jarring |
22:50.33 | jasta | i wouldnt even offer that in the notification as a custom button. i would just have one special button for stop, a very common action that should be _easy_ to do. |
22:50.33 | rayado | not less clicks, but the user-load might be less |
22:50.41 | jasta | because music playing on your phone can be something you want to shut off quickly |
22:51.57 | gdsx | jasta: I think the easy current way to do what you want is to just hold the volume-down button |
22:52.09 | *** part/#android KenBW2 (n=kenbw2@80-192-186-72.cable.ubr07.pres.blueyonder.co.uk) |
22:52.14 | jasta | sure, and thats what i imagine most users would realize |
22:52.33 | jasta | but still, i find this a compelling case to extend what the notification area will allow |
22:52.36 | gdsx | ::nod:: |
22:57.06 | rayado | I'm not disagreeing by the way. I'm only telling you what the UI designers wanted. |
22:57.23 | jasta | maybe i can open that dialog with them then |
23:10.27 | taaz | which is the prefered terminology, settings or preferences? the api is all about preferences but most of the apps seem to use 'settings' menu options |
23:11.07 | romainguy___ | settings |
23:14.46 | *** join/#android plusminus_ (i=4421a620@gateway/web/ajax/mibbit.com/x-ca81491dd0560b56) |
23:15.27 | taaz | ok. why the difference terminology? they both mean the same thing to me at first glance |
23:32.40 | *** join/#android BBHoss (n=bbhoss@c-68-62-170-33.hsd1.al.comcast.net) |
23:40.40 | *** join/#android AttractiveApe (n=phil@office.gossamer-threads.com) |
23:41.33 | jasta | uhm, what the hell |
23:42.35 | jasta | this can't be, onItemClick has an off-by-one? |
23:42.55 | jasta | oh wait, header views affect list position? |
23:43.12 | jasta | is so confused |
23:43.58 | jasta | so that must be what ListView#getItemIdAtPosition is all about? correcting for this for me? |
23:44.00 | *** join/#android AttractiveApe (n=phil@office.gossamer-threads.com) |
23:48.01 | jasta | this seems like a bug or something. or at least inconsistent behaviour with other parts of the listview mechanics |
23:48.03 | *** join/#android meoblast001 (n=meoblast@dynamic-acs-24-239-93-241.zoominternet.net) |
23:49.35 | romainguy___ | just get the correct adapter using getAdapter() |
23:49.45 | romainguy___ | when you use headers/footers, your adapter is wrapped by another adapter |
23:49.55 | romainguy___ | it's transparent to ListView |
23:51.59 | jasta | i see, but i have to account for this if i'm interpreting the position in the list? |
23:52.17 | jasta | my app was specifically looking at the clicked item pos as the position of the item in the adapter |
23:52.48 | romainguy___ | call getAdapter(), cast to HeaderViewListAdapter |
23:52.52 | romainguy___ | this offers the APIs you need |
23:53.07 | Dougie187 | hows it going jasta? |
23:53.10 | romainguy___ | like getHeadersCount() |
23:53.21 | jasta | ahh, excellent |
23:53.38 | romainguy___ | you can also use getItemId, getItem, etc. |
23:53.46 | jasta | so i can generalize this by just checking if getAdapter instanceof HeaderViewListAdapter then adjusting pos by getHeadersCount()? |
23:53.48 | romainguy___ | they will offset correctly inside your adapter |
23:53.53 | romainguy___ | yep |
23:56.49 | Dougie187 | you got your program working for the most part? |
23:58.19 | jasta | Yup, go it tested on real hardware too |
23:58.21 | jasta | got* |
23:58.56 | jasta | it's working better than i expected, even. |