News Control is the phone-friendly companion to the news viewer. It shows what is currently on the display, lets you cycle through the loaded screens, and reconfigures which categories the viewer will pull from thenewsapi.com.

The viewer owns all news state. The control sends commands to the viewer:
rc.sendFunctionCall("news", "newsViewer.prev");
rc.sendFunctionCall("news", "newsViewer.next");
rc.sendFunctionCall("news", "newsViewer.toggle");
rc.sendFunctionCall("news", "newsViewer.refresh");
rc.sendFunctionCall("news", "newsViewer.setCategories", ["general", "tech"]);
rc.sendFunctionCall("news", "newsViewer.requestState", rc.client);
The viewer pushes snapshots to controls through the global callback:
newsControl.receiveState(snapshot);
The snapshot contains the active screen index and total, the play state, the active categories list and the master list of all available categories so the control can render the picker even before the user changes anything.
Written in ES5 with XMLHttpRequest-compatible state handling, simple flexbox controls, and conservative CSS for older mobile browsers.
/news-c/?r=<room>