App 2.31.0: full screen from the navigation, swipe in from the left to return

The Overview's full-screen button moved from the page's corner into the
navigation, beside the MG4 logo. A swipe in from the left edge (EdgeSwipe,
unit-tested) brings the navigation back; a faint handle marks the edge.
Sideways swipes no longer change the page: only the navigation does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
This commit is contained in:
2026-10-25 08:53:41 +01:00
co-authored by Claude Opus 5.5
parent 4a1f178b5c
commit 4cd5f7a7ba
13 changed files with 179 additions and 34 deletions
@@ -0,0 +1,45 @@
package com.evsuite.abrp;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/** The swipe from the left edge that brings the navigation back — pure JVM. */
public class EdgeSwipeTest {
@Test
public void swipeFromTheEdgeCounts() {
EdgeSwipe swipe = new EdgeSwipe(48f, 80f);
swipe.down(10f, 300f);
assertFalse(swipe.move(50f, 305f));
assertTrue(swipe.move(95f, 310f));
// Only once per touch.
assertFalse(swipe.move(200f, 310f));
}
@Test
public void touchAwayFromTheEdgeIsIgnored() {
EdgeSwipe swipe = new EdgeSwipe(48f, 80f);
swipe.down(200f, 300f);
assertFalse(swipe.move(400f, 300f));
}
@Test
public void verticalScrollIsNotTheSwipe() {
EdgeSwipe swipe = new EdgeSwipe(48f, 80f);
swipe.down(10f, 100f);
assertFalse(swipe.move(30f, 200f));
// Gone sideways afterwards: still the scroll.
assertFalse(swipe.move(150f, 210f));
}
@Test
public void leftwardOrLiftedIsNotTheSwipe() {
EdgeSwipe swipe = new EdgeSwipe(48f, 80f);
swipe.down(40f, 300f);
assertFalse(swipe.move(0f, 300f));
swipe.up();
assertFalse(swipe.move(200f, 300f));
}
}