Share sheet: Hidden and Storage toggles, plus diagnostics for the missing accounts

Two menu chips start at the account's app settings (hidden filter, storage
scope - now published per account), hidden-on asks for the app's unlock, and
external storage is detected via nc:mount-type incl. everything under a
mount. Adds logging for which accounts get published and why one is skipped.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Ayushya Amitabh
2026-10-06 20:15:19 -04:00
co-authored by Claude Sonnet 5.5
parent 22a6602f08
commit 02d612bfec
9 changed files with 328 additions and 39 deletions
@@ -11,6 +11,7 @@ void main() {
username: 'alice',
password: 's3cret',
hiddenFilter: 'include',
storageScope: 'all',
);
const bob = ShareAccountEntry(
id: 'nc_home_lan__bob',
@@ -18,6 +19,7 @@ void main() {
username: 'bob',
password: 'pw',
hiddenFilter: 'hide',
storageScope: 'cloud',
);
Map<String, dynamic> build({
@@ -52,10 +54,12 @@ void main() {
);
expect(accounts[0]['displayName'], 'alice@cloud.example.com');
expect(accounts[0]['hiddenFilter'], 'include');
expect(accounts[0]['storageScope'], 'all');
// The display name uses the host only - not the port or sub-path.
expect(accounts[1]['displayName'], 'bob@nc.home.lan');
expect(accounts[1]['serverUrl'], 'https://nc.home.lan:8443/nextcloud');
expect(accounts[1]['hiddenFilter'], 'hide');
expect(accounts[1]['storageScope'], 'cloud');
});
test('the active account and the lock settings are passed through', () {