OK, I see. I had seen the "bounds" parameter which is passed to the RoboViewController constructor, and assumed that this was designed to allow for non-full screen views. But I guess this is not the case; I did a quick test as follows:
final UIWindow window = new UIWindow();
CGRect screenBounds = UIScreen.getMainScreen().getBounds();
CGRect vcBounds = new CGRect(screenBounds.getX()+50, screenBounds.getY()+50, screenBounds.getWidth()-100, screenBounds.getHeight()-200);
RoboViewController ctrl = new RoboViewController(vcBounds, new RoboPlatform.Config()) {
@Override
public void viewDidAppear(boolean animated) {
super.viewDidAppear(animated);
System.out.println("win: " + window.getBounds());
System.out.println("view: " + getView().getBounds());
}
};
window.setRootViewController(ctrl);
RoboPlatform plat = ctrl.plat;
[...]
I say "seems" because from the traces I added I would say that at least some parts of the view think that they are full screen:
2019-02-21 18:06:10.439 TemplateGameRoboVM[4793:1797902] INFO: viewPortChanged 440x736 / 2.0 -> 220.0x368.0
2019-02-21 18:06:10.494 TemplateGameRoboVM[4793:1797902] DEBUG: viewWillAppear(false)
2019-02-21 18:06:10.497 TemplateGameRoboVM[4793:1797902] INFO: viewPortChanged 640x1096 / 2.0 -> 320.0x548.0
2019-02-21 18:06:10.499 TemplateGameRoboVM[4793:1797902] DEBUG: viewDidAppear(false)
win: {{0, 0}, {320, 568}}
view: {{0, 0}, {320, 548}}
2019-02-21 18:06:10.513 TemplateGameRoboVM[4793:1797902] INFO: viewPortChanged 640x1096 / 2.0 -> 320.0x548.0
Also if I am correct the very first viewPortChanged trace (just before viewWillAppear) has the "right" dimensions, but then something else is happening and the bounds are reset right after the viewWillAppear trace..
Guillermo