NewAuth takes a PolicyFetcher for MDM enforcement; a nil one disables it,
which is what the client does until it grows a managed configuration
source. Preferences.getPreSharedKey is gone in favour of
hasPreSharedKey, which also counts a key the MDM policy supplies.
main received the redesign as a single squashed commit (#179) while this
branch carries the same work as individual commits plus file sharing, so
git could not match them up and flagged nearly every shared file.
Kept from this branch: the file sharing feature, the four-item bottom
navigation (Networks folded into the Peers segmented switch, Files and
SSH merged into Apps) and the activity-scoped nav lookup the SSH list
needs inside the Apps screen.
Taken from main: split tunneling and its wiring, the SSH terminal fixes
(application cursor keys, IME composition, modifier dimming, no-peek
password), IPv6 and cleartext handling in ManagementUrl, the forced TUN
rebuild, the remote debug bundle row and the tablet toolbar divider.
Translations were union-merged; the unused menu_ssh string was dropped.
The submodule pointer stays on this branch's commit.
Both carried the paper plane, which says "send" and nothing else: the
feature receives as well, and the settings row it sat on is about the
receiving policy. Each icon now follows its own label. The segment gets a
folder at the 16dp the other segment icons use, since a compound drawable
shows at its intrinsic size; the settings row gets the three-node share
glyph Android itself uses for sharing. The plane stays on the send button
and the share target, where it means what it says.
The outcome column marked a completed send green but left a received
file grey, so green meant one thing on the icon, incoming, and a
different, asymmetric thing on the label. Completed is now green in
either direction; the label's legend is green arrived, red refused or
broke, grey everything else, a transfer in flight included.
The row's icon moves from a bare arrow to the desktop's three glyphs: a
document carrying the arrow for a file, up or down by direction, and a
quote mark for a text snippet. Drawn as 2px round strokes like the Files
menu icon. The bare arrows stay where they still mean network traffic,
on the peer detail row.
A theme change relaunches MainActivity; the old instance's unbindService
reaches the service after the new instance has already bound, so the
service's stopSelf destroys it under the fresh binding. Without
BIND_AUTO_CREATE the binding neither keeps the service alive nor brings
it back, and onServiceDisconnected silently nulls mBinder — every action
afterwards fails with "VPN binder is null" until a full stop/start
cycle. AUTO_CREATE keeps the service alive while bound and rebinds it
after any real death; onServiceDisconnected now logs a warning too.