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/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 <[email protected]>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 <[email protected]> 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 
>>>>>> [email protected]
>>>>>> To unsubscribe from this group, send email to
>>>>>> [email protected]
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/android-developers?hl=en
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> -- 
>>>>> Dianne Hackborn
>>>>> Android framework engineer
>>>>> [email protected]
>>>>>
>>>>> 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 
>>>>> [email protected]
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]
>>>>> 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 
>>>> [email protected]
>>>> To unsubscribe from this group, send email to
>>>> [email protected]
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/android-developers?hl=en
>>>>
>>>
>>>
>>>
>>> -- 
>>> Dianne Hackborn
>>> Android framework engineer
>>> [email protected]
>>>
>>> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to