Public Access
G1 step 4: the Gemini App (rendering, links, history, address line)
Gemtext as Q75 has it: headings bold (# in the accent colour), lists with a middle dot, quotes muted, links as » labels, preformatted lines unwrapped and scrolled sideways together; other text/* as is. Pages are wrapped once for each line's first row (4 bytes a line) and only the lines on screen are wrapped again to draw. Tab and Shift+Tab move between links, Enter follows (relative links resolved), Back or Delete go back to where the page was scrolled, g opens the address line. Non-Gemini links say so in the URL bar; a changed certificate opens a dialog; errors and refusals get a page with a "Try again" link; a page only partly in memory says why at its end. A status message timed with millis() after the loop's clock read was cleared before it was drawn (unsigned wrap): now a signed comparison, as for the toasts in M0. Verified on the device: start page, Project Gemini, its relative news/ link, Back with the scroll restored, and the YouTube link refused. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
|
||||
#include "app_manager.h"
|
||||
#include "apps/demo_app.h"
|
||||
#include "apps/gemini_app.h"
|
||||
#include "apps/gnss_app.h"
|
||||
#include "apps/irc_app.h"
|
||||
#include "apps/launcher_app.h"
|
||||
@@ -174,6 +175,7 @@ void setup() {
|
||||
apps->registerApp({"irc", "IRC", false, new IrcApp(*irc, *clockService, bus)});
|
||||
apps->registerApp({"wifi-tools", "Wi-Fi Tools", false, new WifiToolsApp(*wifi, *storageService, *clockService)});
|
||||
apps->registerApp({"gnss", "GNSS", false, new GnssApp(*gnssService, settings)});
|
||||
apps->registerApp({"gemini", "Gemini", false, new GeminiApp(*geminiService)});
|
||||
apps->registerApp({"settings", "Settings", false,
|
||||
new SettingsApp({settings, bus, *apps, *battery, *storageService, *clockService, *wifi, *savedNetworks, *update})});
|
||||
apps->registerApp({"demo", "Widget demo", true, new DemoApp(bus)});
|
||||
|
||||
Reference in New Issue
Block a user