Skip to content

Commit 9525eb5

Browse files
authored
Merge pull request #512 from xamarin/fix-issue-504
> After discussing with @jonpryor, we aren't entirely sure if this fix will work at runtime. I'm going to do some additional testing to see. We did similar fixes quite often in early days. > Please hold off on merging this while I'll investigate. > Thanks! NP.
2 parents 5e51611 + e6e6f71 commit 9525eb5

File tree

2 files changed

+38
-4
lines changed

2 files changed

+38
-4
lines changed

source/androidx.activity/activity/Additions/ActivityResultContracts.cs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,37 @@ public partial class RequestMultiplePermissions // : global::AndroidX.Activity.R
180180
}
181181
}
182182

183+
}
184+
}
185+
}
183186

187+
namespace AndroidX.Activity.Result.Contract
188+
{
189+
// Metadata.xml XPath class reference: path="/api/package[@name='androidx.activity.result.contract']/class[@name='ActivityResultContracts']"
190+
// [global::Android.Runtime.Register ("androidx/activity/result/contract/ActivityResultContracts", DoNotGenerateAcw=true)]
191+
public sealed partial class ActivityResultContracts //: global::Java.Lang.Object
192+
{
193+
public partial class CreateDocument
194+
{
195+
// Metadata.xml XPath method reference: path="/api/package[@name='androidx.activity.result.contract']/class[@name='ActivityResultContracts.CreateDocument']/method[@name='createIntent' and count(parameter)=2 and parameter[1][@type='android.content.Context'] and parameter[2][@type='java.lang.String']]"
196+
[Register ("createIntent", "(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;", "GetCreateIntent_Landroid_content_Context_Ljava_lang_String_Handler")]
197+
public override unsafe global::Android.Content.Intent CreateIntent (global::Android.Content.Context context, global::Java.Lang.Object input)
198+
{
199+
const string __id = "createIntent.(Landroid/content/Context;Ljava/lang/String;)Landroid/content/Intent;";
200+
IntPtr native_input = JNIEnv.NewString ((string) input);
201+
try {
202+
JniArgumentValue* __args = stackalloc JniArgumentValue [2];
203+
__args [0] = new JniArgumentValue ((context == null) ? IntPtr.Zero : ((global::Java.Lang.Object) context).Handle);
204+
__args [1] = new JniArgumentValue (native_input);
205+
var __rm = _members.InstanceMethods.InvokeVirtualObjectMethod (__id, this, __args);
206+
return global::Java.Lang.Object.GetObject<global::Android.Content.Intent> (__rm.Handle, JniHandleOwnership.TransferLocalRef);
207+
} finally {
208+
JNIEnv.DeleteLocalRef (native_input);
209+
global::System.GC.KeepAlive (context);
210+
global::System.GC.KeepAlive (input);
211+
}
212+
}
184213
}
185-
}
214+
}
186215
}
216+

source/androidx.activity/activity/Transforms/Metadata.xml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,19 +214,23 @@
214214
Java.Lang.Object
215215
</attr>
216216

217-
217+
<!--
218218
<attr
219219
path="/api/package[@name='androidx.activity.result.contract']/class[@name='ActivityResultContracts.CreateDocument']/method[@name='createIntent' and count(parameter)=2 and parameter[1][@type='android.content.Context'] and parameter[2][@type='java.lang.String']]/parameter[2]"
220-
name="type"
220+
name="managedType"
221221
>
222-
java.lang.Object
222+
Java.Lang.Object
223223
</attr>
224224
<attr
225225
path="/api/package[@name='androidx.activity.result.contract']/class[@name='ActivityResultContracts.CreateDocument']/method[@name='createIntent' and count(parameter)=2 and parameter[1][@type='android.content.Context'] and parameter[2][@type='java.lang.String']]"
226226
name="managedReturn"
227227
>
228228
Android.Content.Intent
229229
</attr>
230+
-->
231+
<remove-node
232+
path="/api/package[@name='androidx.activity.result.contract']/class[@name='ActivityResultContracts.CreateDocument']/method[@name='createIntent' and count(parameter)=2 and parameter[1][@type='android.content.Context'] and parameter[2][@type='java.lang.String']]"
233+
/>
230234
<attr
231235
path="/api/package[@name='androidx.activity.result.contract']/class[@name='ActivityResultContracts.CreateDocument']/method[@name='parseResult' and count(parameter)=2 and parameter[1][@type='int'] and parameter[2][@type='android.content.Intent']]"
232236
name="managedReturn"

0 commit comments

Comments
 (0)