Searching...
Thursday, May 11, 2017

Grandorient-Latest-JellyBean-Android-Computer


ankur kotwal: hi everyone. welcome to android developerlab+ for the 15th of november. so we had a bit of abreak last week. but we're back this week. and it's been a mad busy week. android 4.2 is released. today's hangout actually is allbased around android 4.2 and what that meansto developers. i'm ankur kotwaland i'm joining

from the sydney office. and i'm joined by mycolleague tony. tony chan: hi everyone. ankur kotwal: so tony is joiningus from hong kong. well, let's get started withthis week's topic. and it is android 4.2 whichis also jellybean. so usually we start thesepresentations with news. but we have so much news thatthe news became the topic for the presentation itself.

all right. so, android 4.2 was releaseda day before yesterday, for those people that arein australia. time differences-- it could have been yesterdayfor you, depending on where you are. so android 4.2 is knownas jellybean. the google managed nexus devicesare starting to get otas, or over the air updates.

so that includes the googleprovided galaxy nexuses, as well as our current generationof nexus devices, the nexus 4, the nexus 7, and the nexus 10. and for those of you that werelucky enough to get through with the pre-orders, you'llget to try it out on your nexus 4s and your nexus10s very soon. so that's really great. and i'm sure there'sa lot of people looking forward to that.

one thing i wanted to point out,however, is that we have this site where you can downloadnexus factory images. so a lot of people actually usethis as a way to shortcut the process and update sooner. but the reason i wanted to pointit out is really for our developer community. because one thing that i foundvery useful to do, is occasionally if i want to go inand test my apps on older releases of android--

like let's say gingerbread, oreven ice cream sandwich-- you can go to this site anddownload those factory images and roll back your developerdevices. so that's a good way to have asingle physical device but test across multiple versionsof the android platform. so keep it in mind as part ofyour developer's toolbox. so android 4.2-- it is called jellybean. internally the version codethat we have is actually

called jellybean mr1. and it is api level 17. now the reason i'm mentioningthat we have a static define for jellybean mr1 is because youmay have some code in the your apps that you wantto version gate. now typically we don't-- it's not necessarily goodpractice to version gate your code, but there are timesthat you need to, right? so if you're version gatingagainst this question, it's

android.os.build.versioncodes.jellybeanmr1. so one of the things that manydevelopers we've encouraged in the past on adl+ to do is toupdate your apps so you're targeting the latestversion of the sdk. and if you go back to our firstadl+, we talked about the android manifest xml file. and really we dived quitedeep into that. but one of the things we coveredwas how you update your apps so that you'retargeting the latest sdk.

and that is sdk version 17 soin your user's sdk flag in your android manifestfile, you would just change that to 17. now there are obviously goodreasons to do this. often we enable things in newerversions of the sdk that aren't available inolder versions. so for example, if you'rerunning an old app and it's not version 11 or upwards, thenyou won't get the hollow theme on devices thatsupport hollow.

so it's always a good idea,and in general is good practice, to alwaystarget your sdk to the latest version. you should use the minimum sdkversion-- or min sdk version-- attribute to specify how farback you want to support. and of course there's a wholebunch of development tools, like lint, that'll help protectyou from invoking code that isn't supported on thoseminimum sdk versions. so you should go ahead intothat for jellybean mr1.

but there are some caveats. so in api 17, if you targetapi 17, there are some behavioral changes that we'veintroduced to the platform. so for example, contentproviders, now when you declare them, the default valuefor the android export attribute is actually false. so keep that in mind when youupdate to these latest versions of sdks. we occasionally makechanges like this.

and this is actually quitewell documented on developer.android.com. but here's a summary anyway. the other thing we've donenow is when you request a permissionaccess_coarse_location and you don't specifyaccess_find_location, the accuracy that you get back offthat location will always be around the city block. so in the past, even if youdidn't request find_locations,

there were times whenyour accuracy could have been higher. the accuracy now will always becoarse if you haven't asked for find_locations. and it's really just makingsure that we're consistent with the permissionyou're requesting. the other gotchas or changesthat you should look out for are that there's some settingsin the settings.system class that either are read-only,or have been moved to

settings.global. now there's some good reasonsfor us doing this. an example of that is airplanemode, the toggling of an airplane mode. android 4.2 now has multi-usercapabilities. so you can have multipleusers on your nexus 7 or your nexus 10. and so if you share your tabletwith a family member or a friend, they basically havetheir own set of applications

and their own-- and those appshave their own set of data. so some of these settings arenow going to affect users across the system itself. so they have moved. now with those settings, whetheryou target api 17 or not, on devices that are api17 or higher, those things will have moved. so we kind of know [inaudible]basically if you are accessing those settings and tryingto change them.

your app won't just startcrashing, but it'll basically have no effect if you triedto write to one of these older settings. so keep that in mind. [inaudible] android 4.2, some of thesesettings have changed. and you really should follow upin the documentation as to which ones. so we've introduced somethingnew that we call daydream.

and daydream is really neat forusers because it's like an interactive screensaver thatautomatically kicks in when the user has put their devicein a dock, or the device is idling on a charger. and the reason that it's reallynice is that it's another way for you to engagewith your users. it's another bit ofinteractivity that you can add for your app that drivesusers to your content. so we've obviously got yourtypical activities that users

interact with it there. we've had widgets that allow youto again have some dynamic content on users'home screens. we've had notifications thatallow you to remind users that, hey, something importanthas happened. and again, it's a wayto engage them. or you've used it for thingslike music control so that users can interact with yourapp without having to dive into your app.

daydream is another alternativewith an interactive screensaver mode. so the picture that we havethere in the top right hand corner is the galleryscreensaver-- or the picture screensaver. and so those pictures there,although they keep coming up on this particular daydream,you as a user can actually move them around. so touching the screen doesn'tboot you out of that daydream.

so to implement daydream,you have to look at the dreamservice api. and in a lot of ways, utilizingthis is similar to building activitiesfor your apps. so you'd call setcontentviewafter you've attached to a window. and then there's a set ofoverrides that tell you basically the state of thedream-- so ondreamingstarted, ondreamingstopped.

you can also do other thingslike call setinteractive to say that yes, you havean interactive dream. it can also be a passive dreamwhere just as soon as the user interacts with it, it gets youout of the screensaver mode. and then you can also togglethings like setscreenbright. so some of these daydreams-- the clock one is quite a neatone because it acts like an alarm clock. it shows you the time, but thescreen is actually quite dim

and dull so that for users thathave it on their bedside tables, you're not illuminatingthe whole room just with a daydeam. so you have some controlover that. once you've actually started--you've built your daydream-- you need to remember to declareit in your manifest. so you'd have a service. and you make sure that you'dadded the intent filter for it as well.

so there's the daydreams. this one i'm really excitedabout because it has a lot of potential. and it's basically that we'veadded a second screen of apis. so the nexus 4 utilizes miracastwireless technology so that you can actually have anapp running on your device but displaying on a secondscreen, like a tv, or other devices that support themiracast standard. now the interesting thing aboutthis is, you're not just

limited to mirroring whatis on your device. as a developer, youcan write-- use basically the presentationclass and specify user interfaces on that second screenthat aren't the same as what you have on yourmobile device. so you can have this distinctionbetween a passive experience and aninteractive one. so if you're thinking in termsof games, you might have on your device, you might have theheads up display-- let's

say it's a racing game-- you might have the heads updisplay or the controls visible on the screen. but on the second screen, youmay want to ditch those because then you can just watchhow the race is going. and you may not even showthe same perspective. you might have the driver modeperspective, or first person mode on your mobile device. on a secondary display, it couldbe a more cinematic mode

that has the camera outsideof the vehicle. so anyways, to use this api,you can use either displaymanager or mediarouterclasses to detect whether the device has connected to asecondary display-- whether there's one available. and then you would extend thepresentation class and then you'd construct your class,your extended class, with these display objects. now one thing to keep in mind--and this is really

important-- is that more often than not,the secondary screen will actually be a differentresolution and a different size to what your mobiledevice is. so you shouldn't make anyassumptions that your layouts need to be the same, eventhough they will-- if you are doing themirroring-type mode then yeah, sure. but if you're building customdisplays for the second

screen, you need to use theresources that are attributed to that presentation class. so within your presentationclass, you call getcontext and call getresources. so that when you load resourcesto display-- so let's say drawablesfor example-- that it's getting them from theright folders, whether it would be xhdpi or hdpi oreven using the [? bp ?] smallest-width qualifiers.

so you need to keep that in mindwhen you're working with this, that you can have adifferent set of resources on the secondary display comparedto the primary one. so really awesome stuff there. i can't wait to see whatcomes out of this. i'm sure this is just the startof something really big for second screen apps. the next one is actually oneof my favorite new features which are lock screen widgets.

and basically what it means isthat, typically, what we've had so far on the defaultlauncher-- another being some thirdparty lock screen apps that could do this. but on the default launcher,you'd have the time and then you'd have the slide to unlockwith the circle to go to camera, or unlock, oreven google now. or you'd have the entryfor your password or patent and so on.

well now you can actually haveother widgets than just the clock there. and this is not justwith the-- this isn't the defaultlauncher. but we've added theability for you to create your own widgets. by default the deviceswill come with things like calendar-- tony chan: gmail--

ankur kotwal: --there's also oneother clock widget which is actually-- you can see all yourinternational clocks. but we can't wait to see whatusers will-- how they'll expand this capability. so basically, all you need todo is have a typical app widget that you've always had. and you have to add a newattribute again in the manifest where you specifythat the category of this

particular widget is alsoon the home screen. so this is an attribute, thiswidget category attribute. and if you don't have theattribute there, the default value is home screenbut the new value-- and i mixed this up before-- butthe new value is keyguard, so that it shows up onyour lock screen. tony, was there somethingyou were saying? tony chan: yeah. i was adding gmail.

we have a widget forgmail as well. ankur kotwal: ah, gmaill-- yes, of course. i'm not too keen on sharing mygmail on my look screen, but i'm pretty particularabout security. but i can see it woulddefinitely be convenient. so keep in mind as well, bythe way, that when you add these widgets you want to addcapabilities in those widgets that are still respectingthe privacy of the user.

from a security point of view,keep in mind that if somebody steals a device that's locked bya password, that the people that have got hold of thedevice, they can't add widgets to the lock screen withoutunlocking the device first. we've tried to be particularthere. but you know, app developers,you show whatever you want in the view. so keep that balance in mind. now it's important that youspecify an initial layout.

and you do it again withan attribute called initialkeyguardlayout. and basically, this is theinitial layout that's shown. and then you can update thatlayout as you go through. so those are lockscreenwidgets. [inaudible] super useful. we also added multi-usersupport. yeah. finally.

so that means now we can dothings like tablet sharing between family membersor friends. and as an app developer, youactually don't need to do anything special to have yourapps work in multi-user mode. there are exceptions. if you've been bending the rulesand hard-coding pods in your apps like /sdcard andmaking assumptions around what directories to store data in,you're potentially adding security holes.

because you could be writing nowdata for user 1 in an area that's globally visible,even by user 2. so we've always had a set ofmethods that gave you access to specific storagedirectories. if you weren't using thembefore, please update your apps to use them now. because it can be seen as apotential security risk. so on internal storage, you'vegot things like getfilesdir, getcachedir, andopenfileoutput.

but external storage, and oftenthis is a really cool part of it, is thegetexternalfilesdir and getexternalstoragepublicdirectory. so yeah-- this is again, it'stotally seamless otherwise to developers. but, that's on the assumptionthat you've been doing the right thing. so it's worth auditing yourcode if you're unsure what you've done here.

and of course, with everyplatform release, we have lots and lots of other additions. so things that we'veadded-- right to left support in views. for text rendering, in yourapplication, you have to add an attribute calledsupportrtl. and then you have to goon to find your views accordingly as well. we've also added something thatdevelopers been asking

for for a while, which iscalled nested fragments. so you can now have a fragmentwithin a fragment. to nest them, what youneed do is call this getchildfragmentmanager, forwhen you're doing your fragment transaction. then you can see there's somesample code there that shows you that, when we go to do thetransaction, the begin transaction is actually calledon getchildfragmentmanager. and we are adding thevideo fragment

to an existing fragment. renderscript has also seensome improvements-- things like script groups,script intrinsics, and filterscript. so grouping your bits of yourcode in renderscript, we basically have continued toimprove the performance and parallelism of renderscriptso you get some tremendous performance out of it. and we've got some newcapabilities there that will

make it easier for you. of course, now that we have anew platform released, we also have some great updates tothe developer tools. so now we have an awesomeimprovement to the layout editor that we previewedat google io. but basically, as you can seefrom the screen shots, we have this made view openwhich which looks like a tablet layer. and then we've got a bunch ofsmall thumbnails on the right.

those thumbnails are actuallyshowing previews of that same layout on how to be remindedon different sized screens. and we've obviously got someprofiles there for the nexus 1, the nexus s, galaxynexus, nexus 7, and just 10-inch wxj tablet. excuse me. and as you make changes on yourmain editor there, it will automatically update theother layouts to show you in real time what thosechanges look like.

so you don't need to togglebetween them. you can see all ofthem at once now. this is really handyfor where you're targeting multiple layouts. and i hope by now, developers,that you are targeting multiple layouts. because in this day and age, ifyou're not doing tablet and phone layouts, these areopportunities that you're missing out on.

of course, we've addedmore lint rules. lint is probably my favoritefeature in the android sdk tools. it finds all sorts of potentialruntime issues, but it finds them at compile time. so it's really, really useful. we've added a bunch ofnew rules there. and we've also continued toincrease the number of templates--

app templates-- that wehave in the sdk tools. so you're not having to writeas much of that boilerplate code as you had toin the past. we've added a new ui automatortest framework. basically we have a viewer thatallows you to scan and analyze your appsuser interface. and then there's this uiautomator java library that has a set of apis thatallow you to create functional tests.

finally, we now have somethingthat, again, developers have been asking for for ages,which is a one-click sdk install package. so you can go and downloadthis one package. and it includes the developmentenvironment as well as adt-- the androiddeveloper tools-- the sdk tools, as well as anemulator image, and the apis for the latest versionof android, which of course is 4.2.

the android virtual devicecreation dialogue has also been given a newlick of paint. it's a lot nicer to use now. so for those of you that havegone and created different combinations of avds to try outdifferent layouts and so on, this is a lot nicer. so you can see right off thebat there that we've added things like you being able tospecify cameras there, turning on gpu acceleration just withthat host gpu check box.

it's a lot nicer,a lot easier. one of the things that we've haddevelopers come back to us and say, hey, i'vegot a 4.2 device. but i can't find developeroptions any more in my settings. what we're going to be doing, iswe're publishing an app on google play that enables thosedeveloper options. but basically, you can get pastit by going into about tablet or about phone ifyou're on a phone--

and tapping the build number. i think the magic numberof times you need to tap it is seven. but after you do it two orthree times, it tells you things like, you are now foursteps away, three steps, two steps, and so on. and then it magically appears. this screen shot wasput together by someone on google+--

[? morrits tolksdorf ?]. so thanks for that. so that is really just a quickrundown on all the new capabilities of the android4.2 platform. we're really excited, because ithink there's some great new capabilities here thatdevelopers can really take advantage to provide uniqueand compelling user experiences. but before we go to q&a, weshould talk about something

that we announced overa month ago. it was called adl+ experiments,when we talked about the connectivity apis. and we'd asked a bunchof developers-- well all of you actually-- to build us something cool toshow us, utilizing those apis. and then we we're goingto discuss it in a future episode of adl+. well unfortunately, we're goingto call that a failed

experiment. we didn't get too much interestfrom developers. so we're looking at ways on howwe can move forward with that program. we do think that there's somereal advantages there. but we probably need adifferent approach. so on that note, let's moveto q&a. we've got a set of moderator questions. i'll just see who's live.

we've got lindenand marco live. so if you guys have questions,feel free to ask us now. and after that we willgo to moderator. so linden has pasted somequestions in the chat. does the supportlib provide the getchildfragment manager method? i don't know if it'sspecifically that method, linden. but we've actually added supportfor nested fragments

in the support library,revision 11. i think you might need to-- i'm not sure whether it's calledexactly the same thing. you might have the word"support" in there somewhere. i'll have to just lookit up for you. linden: yeah. that's cool. oh i can talk now as well. i un-muted.

are there any quirkswith that? any known oddities, isuppose, that you guys have seen already? or is it pretty straightforward and pretty robust? ankur kotwal: it's pretty straightforward, pretty robust. the only-- i wouldn't call this a quirk--

the only gotcha that you need tobe aware of-- and it's the same one that's alwaysbeen there-- is that you don't want to bemixing support fragments and native fragments. so in your app, if you're usingfragments, you either use support fragments throughoutor you use native fragments throughout. they are different classes. so they don't just-- you can'tjust interchange them and

expect them to work. linden: awesome. tony, sorry mate. were you looking to addsomething to that? tony chan: no, no. it's fine. ankur kotwal: allright, marco. did you have any questionsfor us? marco: yeah.

i asked if there was anybest practices for using nested fragments. i wanted to see if they're anygotchas or anything that we should be looking out for? like i noticed that when i hadfragments in a view pager that were hosted by another fragment,i could no longer set retaining stints onthe child fragments. ankur kotwal: you couldno longer-- ok.

i'm not familiar withthat actually. because it such a new api, imust admit i haven't had a chance to play with thenested fragments in the support library. so i don't actually know theanswer for this one off the top of my head. tony? tony chan: so-- me neither.

but i think we are planning--we were actually just talking about is. we will have a separateadl+ session, actually presentations, focusing onnested fragments, so we will get some of our teammates'feedback and best practice. and we will present thatin a more formal session in the future. marco: awesome. sounds good.

ankur kotwal: sorry. did you have a follow up? let's take a look at some ofthe questions asked on the moderator maybe. ankur kotwal: yeah. i'll just share the window. ok tony chan: so the first one isandroid 2.x supports ipsec vpn using psk--

pap/ms-chap. is but it's not in4.x anymore. why? is it removed? or is it possible to implementa vpn client support that-- so, in terms of api, i don'tthink we have pap and chap in full api. but last i checked in 4.0, westill have psk, but not for pap and chap configurations.

so we need to check with theteam, see whether we moved these [inaudible] for [inaudible] reasonor some other reason. so i guess next week wecan find the answer get back from them. ankur kotwal: ok. is it possible to useviewpager.pagetransformer with jake wharton's nineoldandroidslibrary to make the animations on page views backwardcompatible to os 2.1?

so it seems-- marco, is this thesame-- is it you? or is this a different marco? marco: no. it's me. ankur kotwal: i personallyhave not used jake's nineoldandroids library. so i'm personally not sure aboutthe compatibility there. i suspect he'll probablyknow because the

viewpager.pagetransformerhas been around for a while, right? tony, is there anything youwanted to add to that? tony chan: not withthe viewpager. so we're not sure, marco. i suspect, try asking jake. we'll try and follow upin a future episode. but we don't know right now. marco: ok.

ankur kotwal: what feature ofandroid 4.2 or 3.x, is the best for making static pages notmore than five to seven? i do not want animation. the static pages containstext of eternal truth. that's interesting. i may change the font style,but not the text content. so i think this person is justbasically saying that they've got five to sevenpages of text. they don't want to animatefrom there.

so i'm guessing maybe they'vegot like a next button and it just refreshes the screen. is that your understandingof this question, tony? ankur kotwal: there's lotsof ways you can do this. if you're just using a singletext view, you can just listen to the button click for whatevernext, or if you've got a swipe gesture, andjust update the text in your text views. alternatively, you can changethe views that you show.

so you may not want toreuse the text view for whatever reason. and you may have a differentset of text views. so you can just hidethe existing ones, show these ones. you could probably go fromactivity to activity and say that you explicitly don't wantan activity animation. so there's lots ofways to do this. the animations are there togive a more pleasant user

experience. but if you are after somethingthat's quite enough frills and you just want to changevalues, lots of different ways to do it. this was marco's question aroundthe best practices when nesting fragments withinfragments. we're going to getback to that. we'll talk about nestedfragments in the future, in an upcoming episode.

there's a link here toaction quick clock. do you know-- the quick clock we're referringto here is in 4.2. if you drag the notificationtray down and it's really great on top. it's really a o'clockwe're talking to. so understand dex mentioned isnot triggering the intent. but i just actually tried itmyself with an intent and it actually launched my applicationproperly.

so it's really that clock. when you drag down thenotification tray, it's really the one on top. so that's the one we werereferring to before. so, dex, i don't knowif you're watching. but if you still can'tget it to work, obviously tony has a solution. so feel free to just reachout to tony afterwards. and maybe there's something inyour code or your solution

that doesn't match this. when does android startsupporting the bluetooth imap profile? i think the great jellybeanis missing it. so we typically don'ttalk about-- we're not able to talkabout features that-- when we're bringing featuresto the platform. so the answer is really,we don't know. but it's something that we cantake back to our engineering

team to say, hey, developersare asking for it. any highlights on the supportpackage revision 11? so yes. and let me just share thatparticular window with you. so if you just do a googlesearch for android support library, this is the firsthit you'll get. support package revision 11--we've got a set of new capabilities. i already mentioned thenested fragments.

there's some classes there forthe viewpager and some accessibility improvementsas well. so here's the fulllist of them. and you can go through them indetail for the ones that are relevant to your app. let's go back tothe questions. last one. tony, another vpn one? it points to a link.

so since vpn api is availablein 4.0, can this api help making connections? or it is not supportingthis api also? so i look at the questions,and also the apis. the api itself is actuallyhelping for preparing vpn connections. i think it actually doeswhat phone was asking. if not, ping me and we canlook into this further. i think that 4.0 vpidoes what you ask.

great. well, that's the full listof questions for today. people that are watching live,if you have any more questions, please post themeither in the thread. or if you're live-- linden, marco-- if you've got any otherquestions, now's your chance. i've got something. i'm working on something atthe moment that's the old

credit card swipe view. now i'd made something similarearlier this year before i knew that gallerywas deprecated. and so i was going to go grabthat code and tweak it a bit. and then saw, obviously,gallery's deprecated. so i'm using the viewpagerwithin a viewpager at the moment, because theouter [? ui ?] is in a viewpager so you canswipe the whole pages across. that's ok, because i can pushon the motion onto the inner

viewpager without a problem. but i'm also using that setchild clipping false trick to show the neighboring itemsin that viewpager. mark, my nephew, has gota post about it. there's a bunch of people thathave done a bit of work about it but i'm finding it'sreally nasty. because you end up with aviewpager that's really not the full width of the screen. and when you go to the end--

when you motion to the end--you're getting that glow pop up, not on the edge of thescreen, but halfway in. there's also some artifactsin there. if you hold your finger downslowly do motions-- i'm just wondering, do you knowif there's a better trick out there that no one'sbeen talking about? ankur kotwal: so let me justget a better understanding. because this concept of puttinga viewpager within a viewpager seems like it couldbe quite confusing to users.

because if you're using-- in the outer viewpager, you'reusing swipes to swipe through the outer viewpager. then you suddenly end up on aspecific page, off that outer viewpager, that's now consumingthose swipes. you've kind of broken theswipe navigation. i'm aware of that. and i've trialed it. really, i think that itactually tilts the

[? opposite. ?] because they are all actuallyhinting by having the main navigation in a viewpager, andthen you hit a page and someone accidentally swipes onthis inner viewpager, they've just found out, reallyobviously, that that is its own little motion element. so in a way, that outer swiping hints to swiping anyway. and there's plenty of other roomto swipe to get to the

other pages. there's tabs as well, sothey can click on it. ankur kotwal: my personalpreference would be, that you wouldn't want to overridethe horizontal swipes. and marco said, it's aconflict of swipes. and i agree with that. you probably wouldn't want tooverride that swiping behavior from the outer viewpager tosuddenly an inner one. other things you could consider,for that inner

viewpager that you have now,could that, instead of swiping horizontally, be avertical swipe? so horizontally is takingyou across categories. and vertically is theone that-- you said credit cards, right? so if you've got a set of cards,instead of having them next to one another, you havethem vertically sorted? would that be somethingthat might be useful? linden: that would sort of workuntil i go and chuck it

in a scroll view or somethinglike that. i'm taking an app that'son ios and it has that swipe mechanism. but it's going from a dashboardinto each section. and i'm trying flatten the wholenavigation for android to make it a lot quicker to getinto the app, a lot more straightforward. and just sort of cutting thecrap, so to speak, which is a long australian past time.

it seems to be working. i don't think the problem thati'm seeing is really to do with the mix up ofmotion itself. it's more i think that theviewpager is designed to take up the full width of the page. and because of that, the stuffthat you could do with gallery, in terms of havingmultiple items seen side by side next to the one that iscurrently selected, i'm not really seeing a drop inreplacement with viewpager for

that kind of functionality. i haven't had to resort tothat clicking trick that you've mentioned. the one thing i'd askis, could you just try this for me? and i just don't know if there'sa conflict there. could you try having that innerviewpager not be nested inside another viewpager, andjust see if those same artifacts, whether you'restill seeing them?

i just don't know whether-- because you've got a viewpagerwithin a viewpager, i don't know if there's issues comingfrom that or the fact that you're using this clippingfeature. i'll give it a shot breakingit down and might even jot some code out somewhere so ifyou get a chance, have a look. ankur kotwal: sure. marco: it just seems that likefrom a android usability point of view, your users mightnot be expecting that.

the way that you're using aviewpager within a viewpager, i don't think i've seen it inother apps at the moment. i was very cautiousand aware of that. and so i trialed it. and to be honest, my finding isthat actually it hints more that that viewpager takesmotion, because people are already doing motionacross the screen. otherwise, you'd have a staticpage that you're not doing motion on.

and you'd need to have some kindof hint like, hey, you can swipe across this. but if they're swiping acrossthings and then suddenly an inner swiper moves by itselfand the whole page doesn't, it's actually-- i reckon honestly-- it's working a bitbetter that way. but we'll see what happens. the artifacts i don't likeso i've got to find a

solution for that. ankur kotwal: actually,if you could also-- if you're going to reach out tome with some code, if you could just take some screenshotsor a small video or something just toshow the artifacts. or send an apk. if it's credit card relatedyou might not be able to send me an apk. linden: it's cards.

i'm just saying the credit cardthing because that's the sort of typical widget thatpeople are saying-- google wallet that kind of stuffhas that kind of swipe card thing. it's a pretty common thingin mobiles these days. but just the droppingthe gallery, for whatever reasons-- it's got its own problems-- but really it was able toprovide that functionality

better [inaudible]. ankur kotwal: and the onlyother thing i'll say-- and i don't want to dwellon it too much but-- because you've got thisnesting within a-- alternatives to that is thatyour top level viewpager could instead be a spinner on theaction bar, which obviously acts as a drop down. or the sliding drawer reallyworks well, because you can see all of the categories thathave supporting icons as well.

you could still have the swipingleft to right for the card view, but navigating acrosscategories could be done by a spinner orsliding drawer. linden: ok. ankur kotwal: all right. cool. thanks for that. i don't see any more questionson the thread. well, thanks for joining.

and hope it was informative. we'll catch you guysnext time. marco: thank you. ankur kotwal: see you later.

0 comments:

Post a Comment