Release 1.0.3: refine tablet layouts, pointer selection and account sync cleanup
Build iOS / build (push) Successful in 4m45s
Build App Bundle / build (push) Successful in 7m7s

This commit is contained in:
Ayushya Amitabh
2026-10-09 00:36:42 -04:00
parent 79085874a1
commit 0a4608e6c3
67 changed files with 1740 additions and 451 deletions
+4 -1
View File
@@ -12,6 +12,7 @@ class ShareAccountEntry {
final String id;
final String serverUrl;
final String username;
final String? displayName;
final String password;
/// The account's Files "hidden files" filter: `hide`, `only` or `include`.
@@ -24,6 +25,7 @@ class ShareAccountEntry {
required this.id,
required this.serverUrl,
required this.username,
this.displayName,
required this.password,
required this.hiddenFilter,
required this.storageScope,
@@ -60,7 +62,7 @@ class ShareAccountService {
'username': a.username,
'authHeader': basicAuth(a.username, a.password),
'displayName':
'${a.username}@${Uri.tryParse(a.serverUrl)?.host ?? a.serverUrl}',
'${a.displayName?.trim().isNotEmpty == true ? a.displayName!.trim() : a.username}@${Uri.tryParse(a.serverUrl)?.host ?? a.serverUrl}',
'hiddenFilter': a.hiddenFilter,
'storageScope': a.storageScope,
},
@@ -119,6 +121,7 @@ class ShareAccountService {
id: account.id,
serverUrl: account.serverUrl,
username: account.username,
displayName: account.label,
password: password,
hiddenFilter: filter.name,
storageScope: scope.name,
+12 -1
View File
@@ -132,6 +132,14 @@ class SyncService {
}
}
/// Deletes the removed account's mirror and native sync state after stopping
/// its runs. Await before forgetting the account so cleanup failures can retry.
static Future<void> removeAccountData(String accountId) async {
await invokeIfAvailable(_channel, 'removeAccountData', {
'accountId': accountId,
});
}
static String _basicAuth(SavedAccount account, String password) =>
'Basic ${base64Encode(utf8.encode('${account.username}:$password'))}';
@@ -143,7 +151,10 @@ class SyncService {
/// background job is being turned off - the account's paths are still
/// synced by hand ("Sync now"), and a conflict notification's actions
/// still need its credentials.
static Future<void> cancelAccount(String accountId, {bool forget = true}) async {
static Future<void> cancelAccount(
String accountId, {
bool forget = true,
}) async {
await invokeIfAvailable(_channel, 'cancel', {
'accountId': accountId,
'forget': forget,