using System;
public class Test
{
public class Resource
{
public class Id
{
public static int map = 0;
}
}
public class FakeFragmentManager
{
public static FakeMapFragment FindFragmentById(int id)
{
return new FakeMapFragment();
}
}
public class FakeMapFragment
{
public void GetMapAsync(IOnMapReadyCallback OnMapReadyCallback)
{
OnMapReadyCallback.OnMapReady("fake map is ready");
}
}
public interface IOnMapReadyCallback
{
void OnMapReady(string str);
}
public class VeryNaiveImpl : IOnMapReadyCallback
{
public Action<string> Callback;
public void OnMapReady(string map)
{
if(Callback!=null)
Callback(map);
}
}
public static void Main()
{
var mapFragment = FakeFragmentManager.FindFragmentById(Resource.Id.map);
mapFragment.GetMapAsync(new VeryNaiveImpl {
Callback = (map) =>
{
Console.WriteLine(map);
}});
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIGNsYXNzIFJlc291cmNlCgl7CgkJcHVibGljIGNsYXNzIElkCgkJewoJCQlwdWJsaWMgc3RhdGljIGludCBtYXAgPSAwOwoJCX0KCX0KCXB1YmxpYyBjbGFzcyBGYWtlRnJhZ21lbnRNYW5hZ2VyCgl7CgkJcHVibGljIHN0YXRpYyBGYWtlTWFwRnJhZ21lbnQgRmluZEZyYWdtZW50QnlJZChpbnQgaWQpCgkJewoJCQlyZXR1cm4gbmV3IEZha2VNYXBGcmFnbWVudCgpOwoJCX0KCX0KCXB1YmxpYyBjbGFzcyBGYWtlTWFwRnJhZ21lbnQgCgl7CgkJcHVibGljIHZvaWQgR2V0TWFwQXN5bmMoSU9uTWFwUmVhZHlDYWxsYmFjayBPbk1hcFJlYWR5Q2FsbGJhY2spCQoJCXsKCQkJT25NYXBSZWFkeUNhbGxiYWNrLk9uTWFwUmVhZHkoImZha2UgbWFwIGlzIHJlYWR5Iik7CgkJfQoJfQoJcHVibGljIGludGVyZmFjZSBJT25NYXBSZWFkeUNhbGxiYWNrIAoJewoJCXZvaWQgT25NYXBSZWFkeShzdHJpbmcgc3RyKTsKCX0KCQoJcHVibGljIGNsYXNzIFZlcnlOYWl2ZUltcGwgOiBJT25NYXBSZWFkeUNhbGxiYWNrCgl7CgkJcHVibGljIEFjdGlvbjxzdHJpbmc+IENhbGxiYWNrOwoJCXB1YmxpYyB2b2lkIE9uTWFwUmVhZHkoc3RyaW5nIG1hcCkKCQl7CgkJCWlmKENhbGxiYWNrIT1udWxsKQoJCQkJQ2FsbGJhY2sobWFwKTsKCQl9Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgbWFwRnJhZ21lbnQgPSBGYWtlRnJhZ21lbnRNYW5hZ2VyLkZpbmRGcmFnbWVudEJ5SWQoUmVzb3VyY2UuSWQubWFwKTsKCQltYXBGcmFnbWVudC5HZXRNYXBBc3luYyhuZXcgVmVyeU5haXZlSW1wbCB7IAoJCQlDYWxsYmFjayA9IChtYXApID0+IAoJCQl7IAoJCQkJQ29uc29sZS5Xcml0ZUxpbmUobWFwKTsgCgkJCX19KTsKCX0KfQ==