Acknowledged
over 1 year ago

ViewLoop is completely broken on Instinct 2

I have following code, which is supposed to create ViewLoop as main view and display menu on select button.

import Toybox.Application;
import Toybox.Lang;
import Toybox.WatchUi;
import Toybox.Graphics;

class testApp extends Application.AppBase {

    function initialize() {
        AppBase.initialize();
    }

    function onStart(state as Dictionary?) as Void {
    }

    function onStop(state as Dictionary?) as Void {
    }

    function getInitialView() as [WatchUi.Views] or [WatchUi.Views, WatchUi.InputDelegates] {
        var loop = new WatchUi.ViewLoop(new Factory(), {:wrap => true});
        return [ loop, new WatchUi.ViewLoopDelegate(loop)];
        //return [ new TestView(), new Delegate()];
    }

}

class TestView extends WatchUi.View {

    function initialize() {
        View.initialize();
    }

    function onLayout(dc as Dc) as Void {
        setLayout(Rez.Layouts.MainLayout(dc));
    }

    function onShow() as Void {
    }

    function onUpdate(dc as Dc) as Void {
        View.onUpdate(dc);
    }

    function onHide() as Void {
    }

}

class Factory extends WatchUi.ViewLoopFactory{
    function initialize(){
        ViewLoopFactory.initialize();
    }

    public function getSize(){
        return 3;
    }

    public function getView(page as Lang.Number){
        var view = new TestView();
        return [view, new Delegate()];
    }
}

function getApp() as testApp {
    return Application.getApp() as testApp;
}

class Delegate extends WatchUi.BehaviorDelegate {
    public function initialize(){
        BehaviorDelegate.initialize();
    }

    public function onSelect() as Lang.Boolean {
        System.println("menu key");
        showActionMenu();
        return true;
    }

    function showActionMenu() as Void {
        WatchUi.showActionMenu(new Rez.Menus.ActionMenu(),
            new WatchUi.ActionMenuDelegate());
    }
}

When running in simulator, everything works fine. Unfortunately on real HW (Instinct2) following issues can be observed

- Battery status is drawn in mini-display area

Menu indicator (defined as

<bitmap id="menu" personality="system_icon_dark__hint_action_menu system_loc__hint_action_menu" />

) only appears for a moment, when scrolling through pages (and at completely wrong possition)

- When attempting to display menu, watch crashes going to reboot