diff --git a/assets/translations/he.json b/assets/translations/he.json index 14923bc17..9aecaa6d6 100644 --- a/assets/translations/he.json +++ b/assets/translations/he.json @@ -86,20 +86,20 @@ "filter": "סינון", "filterApps": "סינון יישומים", "appName": "שם היישום", - "author": "מפתח/ת", + "author": "מפתחים", "upToDateApps": "יישומים מעודכנים", "nonInstalledApps": "יישומים לא מותקנים", "importExport": "ייבוא/ייצוא", "settings": "הגדרות", "exportedTo": "בוצע ייצוא אל {}", "updatiumExport": "ייצוא מ־Updatium", - "failedToExport": "Failed to export", - "exportAlreadyInProgress": "Export already in progress", - "failedToCreateExportFile": "Failed to create export file", - "exportDirNotAccessible": "Export directory is not accessible", + "failedToExport": "הייצוא נכשל", + "exportAlreadyInProgress": "כבר מתבצע ייצוא", + "failedToCreateExportFile": "נכשלה יצירת קובץ הייצוא", + "exportDirNotAccessible": "התיקייה לייצוא אינה נגישה", "invalidInput": "קלט לא תקני", "importedX": "בוצא ייבוא של {}", - "updatiumImport": "ייבוא ל־Updatium", + "updatiumImport": "ייבוא אל Updatium", "importFromURLList": "ייבוא מרשימת כתובות", "searchQuery": "מילת חיפוש", "appURLList": "רשימת כתובות יישומים", @@ -249,8 +249,8 @@ "groupByCategory": "קיבוץ לפי קטגוריה", "listView": "תצוגת רשימה", "gridView": "תצוגת רשת", - "autoApkFilterByArch": "Attempt to filter APKs by CPU architecture if possible", - "autoLinkFilterByArch": "Attempt to filter links by CPU architecture if possible", + "autoApkFilterByArch": "ביצוע ניסיון לסינון קובצי APK לפי ארכיטקטורת המעבד במידת האפשר", + "autoLinkFilterByArch": "ביצוע לסינון קישורים לפי ארכיטקטורת המעבד במידת האפשר", "overrideSource": "דריסת המקור", "dontShowAgain": "לא להציג זאת שוב", "dontShowTrackOnlyWarnings": "לא להציג אזהרות מסוג ‚למעקב עדכונים בלבד’", @@ -334,7 +334,7 @@ "useVersionCodeAsOSVersion": "Use app versionCode as OS-detected version", "requestHeader": "כותרת בקשה", "useLatestAssetDateAsReleaseDate": "Use latest asset upload as release date", - "defaultPseudoVersioningMethod": "Default pseudo-versioning method", + "defaultPseudoVersioningMethod": "שיטת ברירת מחדל למספור מעֵין־גרסאות", "partialAPKHash": "גיבוב APK חלקי", "APKLinkHash": "גיבוב קישור APK", "directAPKLink": "קישור ישיר לקובץ APK", @@ -450,8 +450,8 @@ "other": "{} קובצי APK" }, "certificateHash": { - "one": "Certificate Hash", - "other": "Certificate Hashes" + "one": "גיבוב תעודה", + "other": "גיבובי תעודה" }, "securityDisclaimerTitle": "כתב ויתור בנוגע לאבטחה ונושאים משפטיים", "license": "רישיון", diff --git a/lib/main.dart b/lib/main.dart index de306692f..de630d903 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -904,8 +904,20 @@ class _UpdatiumState extends State { shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(28), ), - titleTextStyle: textTheme.headlineSmall, - contentTextStyle: textTheme.bodyLarge, + titleTextStyle: TextStyle( + color: scheme.onSurface, + fontSize: 24, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.33, + ), + contentTextStyle: TextStyle( + color: scheme.onSurface, + fontSize: 16, + fontWeight: FontWeight.w400, + letterSpacing: 0.5, + height: 1.5, + ), ), ); } diff --git a/lib/pages/app.dart b/lib/pages/app.dart index a7de5f985..2f725099f 100644 --- a/lib/pages/app.dart +++ b/lib/pages/app.dart @@ -588,7 +588,7 @@ class _AppPageState extends State { ); getBottomSheetMenu() => Container( - color: Theme.of(context).colorScheme.surface, + color: Theme.of(context).colorScheme.surfaceContainerLow, child: Padding( padding: EdgeInsets.fromLTRB( 16, @@ -599,50 +599,27 @@ class _AppPageState extends State { child: Column( mainAxisSize: MainAxisSize.min, children: [ - Padding( - padding: const EdgeInsets.fromLTRB(16, 8, 16, 0), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - children: [ - if (source != null && - source.combinedAppSpecificSettingFormItems.isNotEmpty) - IconButton( - onPressed: app?.downloadProgress != null || updating - ? null - : () async { - var values = await showAdditionalOptionsDialog(); - handleAdditionalOptionChanges(values); - }, - tooltip: tr('additionalOptions'), - icon: const Icon(Icons.edit), - ), - if (app?.app.installedVersion != null && - app?.app.installedVersion != app?.app.latestVersion && - !isVersionDetectionStandard && - !trackOnly) - IconButton( - onPressed: app?.downloadProgress != null || updating - ? null - : showMarkUpdatedDialog, - tooltip: tr('markUpdated'), - icon: const Icon(Icons.done), - ), - if ((!isVersionDetectionStandard || trackOnly) && - app?.app.installedVersion != null && - app?.app.installedVersion == app?.app.latestVersion) - IconButton( - onPressed: app?.app == null || updating - ? null - : () { - app!.app.installedVersion = null; - appsProvider.saveApps([app.app]); - }, - icon: const Icon(Icons.restore_rounded), - tooltip: tr('resetInstallStatus'), - ), - const SizedBox(width: 16.0), - Expanded(child: getInstallOrUpdateButton()), - const SizedBox(width: 16.0), + Padding( + padding: const EdgeInsets.fromLTRB(16, 8, 16, 0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + if (source != null && + source.combinedAppSpecificSettingFormItems.isNotEmpty) + IconButton( + onPressed: app?.downloadProgress != null || updating + ? null + : () async { + var values = await showAdditionalOptionsDialog(); + handleAdditionalOptionChanges(values); + }, + tooltip: tr('additionalOptions'), + icon: const Icon(Icons.edit), + ), + if (app?.app.installedVersion != null && + app?.app.installedVersion != app?.app.latestVersion && + !isVersionDetectionStandard && + !trackOnly) IconButton( onPressed: app?.downloadProgress != null || updating ? null @@ -661,19 +638,44 @@ class _AppPageState extends State { tooltip: tr('remove'), icon: const Icon(Icons.delete), ), - ], - ), + const SizedBox(width: 16.0), + Expanded(child: getInstallOrUpdateButton()), + const SizedBox(width: 16.0), + IconButton( + onPressed: app?.downloadProgress != null || updating + ? null + : () { + appsProvider + .removeAppsWithModal( + context, + app != null ? [app.app] : [], + ) + .then((value) { + if (value == true) { + Navigator.of(context).pop(); + } + }); + }, + tooltip: tr('remove'), + icon: const Icon(Icons.delete), + ), + ], ), - if (app?.downloadProgress != null) - Padding( - padding: const EdgeInsets.fromLTRB(0, 8, 0, 0), - child: LinearProgressIndicator( - value: app!.downloadProgress! >= 0 - ? app.downloadProgress! / 100 - : null, + ), + if (app?.downloadProgress != null) + Padding( + padding: const EdgeInsets.fromLTRB(0, 8, 0, 0), + child: LinearProgressIndicator( + value: app!.downloadProgress! >= 0 + ? app.downloadProgress! / 100 + : null, + backgroundColor: Theme.of(context).colorScheme.surfaceContainerHighest, + valueColor: AlwaysStoppedAnimation( + Theme.of(context).colorScheme.primary, ), ), - ], + ), + ], ), ), ); diff --git a/lib/pages/apps.dart b/lib/pages/apps.dart index 0a23460d1..e37f1ec38 100644 --- a/lib/pages/apps.dart +++ b/lib/pages/apps.dart @@ -640,7 +640,6 @@ class AppsPageState extends State { return SizedBox( width: 120, - height: double.infinity, child: Center(child: action), ); }, @@ -704,8 +703,9 @@ class AppsPageState extends State { child: ListTile( contentPadding: const EdgeInsets.symmetric( horizontal: 24, - vertical: 12, + vertical: 16, ), + minVerticalPadding: 8, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(16), side: selectedAppIds.contains(listedApps[index].app.id)