Ok, I'll verify I have the current version of the compatibility library. If it is fixed, what would cause my fragment's onActivityResult callback method to never be called?
On Thursday, April 26, 2012 4:42:41 AM UTC-5, Kostya Vasilyev wrote: > > The bug is in the compatibility library, not the platform, so no firmware > updates are involved. > > The native platform implementation of this is different. > > It appears fixed in the current version of the compat library (v7?), I > believe it has been for a long time. > > -- K > > 26 апреля 2012 г. 6:32 пользователь Zsolt Vasvari <zvasv...@gmail.com>написал: > >> Oh, I see this is from 2011, not this March. Never mind -- the fix >> should certainly be part of 3.2 and ICS. >> >> >> On Thursday, April 26, 2012 10:09:38 AM UTC+8, Zsolt Vasvari wrote: >>> >>> I am sure it will be fixed in whatever the next version of Android is >>> and if they back port the fix and the phones get updated (likelihood: >>> 0.0001%). >>> >>> So unless you are targeting ONLY the non-yet public next version of the >>> SDK, you might as well just not even assume this fix exists and code around >>> it somehow. >>> >>> >>> >>> On Thursday, April 26, 2012 9:24:59 AM UTC+8, Casvah wrote: >>>> >>>> Has this issue been fixed? The bug report on the issue tracker says >>>> it's closed, but there are new comments from people having this issue. I >>>> am >>>> also having this issue. I might be doing it wrong though, since I can't >>>> get >>>> it to work with any request code. >>>> >>>> On Thursday, March 10, 2011 12:15:12 PM UTC-6, Dianne Hackborn wrote: >>>>> >>>>> Whoops, yeah that is a bug. Thanks for finding it. I'll fix it in >>>>> the next update. >>>>> >>>>> On Thu, Mar 10, 2011 at 1:55 AM, Pete Doyle wrote: >>>>> >>>>>> Ran into this issue tonight on my Droid (2.2). I think there's an >>>>>> issue in FragmentActivity.**startActivityFromFragment(...)**. >>>>>> >>>>>> YMMV, but this seems to fix it for me: >>>>>> https://github.com/petedoyle/**android-support-v4-googlemaps/** >>>>>> commit/**06307de35a9de0a89ff52bb42a358b**a6740e542c<https://github.com/petedoyle/android-support-v4-googlemaps/commit/06307de35a9de0a89ff52bb42a358ba6740e542c> >>>>>> >>>>>> Basically there are two issues: >>>>>> 1) "(fragment.mIndex+1)<<16" should be in parentheses since + has >>>>>> precedence over << in Java >>>>>> 2) requestCode*0xffff should be requestCode&0xffff. (I think the >>>>>> goal is to strip all but the first 16 bits of the request code). >>>>>> >>>>>> To understand the fix, assume you have a fragment index of 0 and a >>>>>> requestCode of 1. >>>>>> >>>>>> With the current code: >>>>>> (fragment.mIndex+1)<<16 + (**requestCode*0xffff) >>>>>> = (0+1)<<16 + (1*0xFFFF) >>>>>> = (1)<< (16 + 0xFFFF) // since + has precedence over << >>>>>> = 1<<65551 >>>>>> = 32768 // according to my debugger >>>>>> = 1000 0000 0000 0000 // fragment index is lost, request code >>>>>> changes from 1 to 32768 >>>>>> >>>>>> With this change: >>>>>> ((fragment.mIndex+1)<<16) + (**requestCode&0xffff) >>>>>> = ((0+1)<<16) + (1&0xFFFF) >>>>>> = (1<<16) + 1 >>>>>> = 65536 + 1 >>>>>> = 65537 >>>>>> = 1 0000 0000 0000 0001 >>>>>> >>>>>> Thanks, >>>>>> Pete >>>>>> >>>>>> On Wed, Mar 9, 2011 at 9:20 AM, Dianne Hackborn >>>>>> <hack...@android.com>wrote: >>>>>> >>>>>>> Does the API demo for this work wherever you are running it? I have >>>>>>> tested it on 3.0, 2.3, and 1.6, and it works in those places, not would >>>>>>> I >>>>>>> expect it to have any trouble elsewhere. (How this works is very >>>>>>> simple, >>>>>>> it just masks out the top X bits of the request code to determine which >>>>>>> fragment to deliver the result to.) >>>>>>> >>>>>>> Also of course if you are overriding >>>>>>> FragmentActivity.**onActivityResult(), >>>>>>> you *do* need to be sure to call the inherited version. The behavior >>>>>>> here >>>>>>> is slightly different than the HC implementation; the activity method >>>>>>> will >>>>>>> always be called first. >>>>>>> >>>>>>> >>>>>>> On Wed, Mar 9, 2011 at 8:14 AM, drasticp <drast...@gmail.com> wrote: >>>>>>> >>>>>>>> I have an application that targets 2.1. I'm using the Android >>>>>>>> Compatibility Package to migrate the code in my Activities to >>>>>>>> Fragments. I had an Activity which was launching a contact picker as >>>>>>>> follows: >>>>>>>> >>>>>>>> Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, >>>>>>>> Contacts.CONTENT_URI); >>>>>>>> startActivityForResult(**contactPickerIntent, >>>>>>>> CONTACT_PICKER_RESULT); >>>>>>>> >>>>>>>> The result was appropriately handled in the onActivityResult for the >>>>>>>> Activity: >>>>>>>> >>>>>>>> @Override >>>>>>>> public void onActivityResult(int requestCode, int resultCode, Intent >>>>>>>> data) { >>>>>>>> if (resultCode != Activity.RESULT_OK) return; >>>>>>>> switch (requestCode) { >>>>>>>> case CONTACT_PICKER_RESULT: >>>>>>>> handleResult(data); >>>>>>>> break; >>>>>>>> } >>>>>>>> } >>>>>>>> >>>>>>>> Now, I've migrated both the startActivityForResult call and the >>>>>>>> onActivityResult into a Fragment. I have also extended >>>>>>>> FragmentActivity in the hosting Activity. >>>>>>>> >>>>>>>> The contact picker still launches correctly, but onActivityResult in >>>>>>>> the fragment is never called. If I override onActivityResult in the >>>>>>>> FragmentActivity, it *IS* called. However, I don't want to handle >>>>>>>> the >>>>>>>> result there because it breaks the encapsulation philosophy of the >>>>>>>> new >>>>>>>> fragments. >>>>>>>> >>>>>>>> Shouldn't onActivityResult in the fragment be called? Am I missing >>>>>>>> something? Thanks for your assistance! >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Android Developers" group. >>>>>>>> To post to this group, send email to android-developers@** >>>>>>>> googlegroups.com <android-developers@googlegroups.com> >>>>>>>> To unsubscribe from this group, send email to >>>>>>>> android-developers+**unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com> >>>>>>>> For more options, visit this group at >>>>>>>> http://groups.google.com/**group/android-developers?hl=en<http://groups.google.com/group/android-developers?hl=en> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Dianne Hackborn >>>>>>> Android framework engineer >>>>>>> hack...@android.com >>>>>>> >>>>>>> Note: please don't send private questions to me, as I don't have >>>>>>> time to provide private support, and so won't reply to such e-mails. >>>>>>> All >>>>>>> such questions should be posted on public forums, where I and others >>>>>>> can >>>>>>> see and answer them. >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Android Developers" group. >>>>>>> To post to this group, send email to android-developers@** >>>>>>> googlegroups.com <android-developers@googlegroups.com> >>>>>>> To unsubscribe from this group, send email to >>>>>>> android-developers+**unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com> >>>>>>> For more options, visit this group at >>>>>>> http://groups.google.com/**group/android-developers?hl=en<http://groups.google.com/group/android-developers?hl=en> >>>>>>> >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Android Developers" group. >>>>>> To post to this group, send email to android-developers@** >>>>>> googlegroups.com <android-developers@googlegroups.com> >>>>>> To unsubscribe from this group, send email to >>>>>> android-developers+**unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com> >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/**group/android-developers?hl=en<http://groups.google.com/group/android-developers?hl=en> >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Dianne Hackborn >>>>> Android framework engineer >>>>> hack...@android.com >>>>> >>>>> Note: please don't send private questions to me, as I don't have time >>>>> to provide private support, and so won't reply to such e-mails. All such >>>>> questions should be posted on public forums, where I and others can see >>>>> and >>>>> answer them. >>>>> >>>>> -- >> You received this message because you are subscribed to the Google >> Groups "Android Developers" group. >> To post to this group, send email to android-developers@googlegroups.com >> To unsubscribe from this group, send email to >> android-developers+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/android-developers?hl=en >> > > -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en