Autorotation in WebOS

Je nach Lage des Gerätes ändern viele WebOS-Anwendungen die Ausrichtung der Darstellung (Hoch- oder Querformat). Das ist oftmals ganz nett, vor allem beim Betrachten von Bildern, Videos oder Webseiten. Manchmal kann es aber auch ganz gewaltig nerven. Vor allem dann, wenn der Lagesensor sich mal wieder Zeit lässt (das scheint nur bei manchen Geräten wie meinem PRE aufzutreten) und die Anzeige partout in der Vertikalen verharrt.Besonders schlimm ist das bei Anwendungen, bei denen das Querformat keinerlei Zusatznutzen mit sich bringt. Nennen wir diese Art von Programmen der Einfachheit halbe NOAs (Normal-Orientation-Apps) :).

Da ich gerade an einem kleinen NOA arbeite, habe ich die Autorotation mittels

this.controller.setWindowOrientation("up");

kurzerhand deaktiviert.

Wenn man nun weiß, dass dank JavaScript alle WebOS-Web-Anwendungen quasi Zwangs-Open-Source sind, lässt sich das nervende gedrehe von NOAs mit relativ geringem Aufwand unterbinden.

Zunächst ein paar technische Details:

  • Programme, die nicht direkt von Palm stammen liegen im Verzeichnis
    /media/cryptofs/apps/usr/palm/applications/
  • Wie bereits angesprochen lässt sich die Ausrichtung mittels
    this.controller.setWindowOrientation("up");

    fixieren.

  • Ares setzt die Ausrichtung per default in
    StageAssistant.prototype.setup (app/assistants/stage-assistant.js)
  • auf “free”:
    this.controller.setWindowOrientation("free");

Der erste Anlaufpunkt ist also der Stage-Assistent. Findet sich hier die entsprechende Zeile zum Festlegen der Ausrichtung, so ändert man den Wert einfach von “free” auf “up”. Wenn nicht, kann man versuchen, die Zeile einzufügen, allerdings muss dann davon ausgegangen werden, das der Autor des Programmes diese Einstellung an anderer Stelle vorgenommen hat. In dem Fall bleibt nur die Suche nach besagter Zeile in den anderen Assistenten.

Die Änderung lässt sich am Einfachsten mit Internalz direkt auf dem Gerät durchführen (Coding auf dem Handheld ;)).

Leave a Reply

Your email address will not be published. Required fields are marked *


*