Compare commits

...

6 Commits

Author SHA1 Message Date
2679d5a1aa Merge pull request #340 from ImranR98/dev
UI Improvements (#330, #337)
2023-03-01 21:55:47 -05:00
e49c09c0ff Increment version 2023-03-01 21:55:04 -05:00
c9318ef2b5 Merge pull request #336 from markus-gitdev/main
Update de.json
2023-03-01 21:54:05 -05:00
2e88c8eede UI improvements
Update button for individual apps on list is now an icon.
Less clipping on small screens on apps list page.
2023-03-01 21:37:18 -05:00
8648c1bea7 Added icon for non-installed Apps 2023-03-01 20:20:34 -05:00
b22e2bab0c Update de.json
Updated the following strings to a German translation:
- importFromURLsInFile
- versionDetection
- standardVersionDetection
2023-03-01 08:20:04 +01:00
4 changed files with 100 additions and 89 deletions

View File

@ -217,9 +217,9 @@
"releaseDateAsVersionExplanation": "Diese Option sollte nur für Apps verwendet werden, bei denen die Versionserkennung nicht korrekt funktioniert, aber ein Veröffentlichungsdatum verfügbar ist.",
"changes": "Änderungen",
"releaseDate": "Veröffentlichungsdatum",
"importFromURLsInFile": "Import from URLs in File (like OPML)",
"versionDetection": "Version Detection",
"standardVersionDetection": "Standard version detection",
"importFromURLsInFile": "Importieren von URLs aus Datei ( z.B. OPML)",
"versionDetection": "Versionserkennung",
"standardVersionDetection": "Standardversionserkennung",
"removeAppQuestion": {
"one": "App entfernen?",
"other": "App entfernen?"

View File

@ -21,7 +21,7 @@ import 'package:easy_localization/src/easy_localization_controller.dart';
// ignore: implementation_imports
import 'package:easy_localization/src/localization.dart';
const String currentVersion = '0.11.5';
const String currentVersion = '0.11.6';
const String currentReleaseTag =
'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES

View File

@ -233,6 +233,31 @@ class AppsPageState extends State<AppsPage> {
.getSource(listedApps[index].app.url)
.changeLogPageFromStandardUrl(listedApps[index].app.url);
var transparent = const Color.fromARGB(0, 0, 0, 0).value;
var hasUpdate = listedApps[index].app.installedVersion != null &&
listedApps[index].app.installedVersion !=
listedApps[index].app.latestVersion;
var updateButton = IconButton(
visualDensity: VisualDensity.compact,
color: Theme.of(context).colorScheme.primary,
tooltip:
listedApps[index].app.additionalSettings['trackOnly'] ==
true
? tr('markUpdated')
: tr('update'),
onPressed: appsProvider.areDownloadsRunning()
? null
: () {
appsProvider.downloadAndInstallLatestApps([
listedApps[index].app.id
], globalNavigatorKey.currentContext).catchError((e) {
showError(e, context);
});
},
icon: Icon(
listedApps[index].app.additionalSettings['trackOnly'] ==
true
? Icons.check_circle_outline
: Icons.install_mobile));
return Container(
decoration: BoxDecoration(
border: Border.symmetric(
@ -264,7 +289,22 @@ class AppsPageState extends State<AppsPage> {
listedApps[index].installedInfo!.icon!,
gaplessPlayback: true,
)
: null,
: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Transform(
alignment: Alignment.center,
transform: Matrix4.rotationZ(0.31),
child: Image(
image: const AssetImage(
'assets/graphics/icon.png'),
color: Colors.white.withOpacity(0.1),
colorBlendMode: BlendMode.modulate,
gaplessPlayback: true,
),
),
]),
title: Text(
maxLines: 1,
listedApps[index].installedInfo?.name ??
@ -278,21 +318,33 @@ class AppsPageState extends State<AppsPage> {
),
subtitle: Text(
tr('byX', args: [listedApps[index].app.author]),
maxLines: 1,
style: TextStyle(
overflow: TextOverflow.ellipsis,
fontWeight: listedApps[index].app.pinned
? FontWeight.bold
: FontWeight.normal)),
trailing: SingleChildScrollView(
reverse: true,
child: listedApps[index].downloadProgress != null
? Text(tr('percentProgress', args: [
listedApps[index]
.downloadProgress
?.toInt()
.toString() ??
'100'
]))
: (Column(
trailing: listedApps[index].downloadProgress != null
? Text(tr('percentProgress', args: [
listedApps[index]
.downloadProgress
?.toInt()
.toString() ??
'100'
]))
: (Row(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
hasUpdate
? updateButton
: const SizedBox.shrink(),
hasUpdate
? const SizedBox(
width: 10,
)
: const SizedBox.shrink(),
Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
@ -306,80 +358,38 @@ class AppsPageState extends State<AppsPage> {
'${listedApps[index].app.installedVersion ?? tr('notInstalled')}${listedApps[index].app.additionalSettings['trackOnly'] == true ? ' ${tr('estimateInBrackets')}' : ''}',
overflow: TextOverflow.ellipsis,
textAlign: TextAlign.end,
))
)),
]),
GestureDetector(
onTap: changesUrl == null
? null
: () {
launchUrlString(changesUrl,
mode: LaunchMode
.externalApplication);
},
child: Text(
listedApps[index].app.releaseDate ==
null
? tr('changes')
: DateFormat('yyyy-MM-dd').format(
listedApps[index]
.app
.releaseDate!),
style: const TextStyle(
fontStyle: FontStyle.italic,
decoration:
TextDecoration.underline),
)),
listedApps[index].app.installedVersion !=
null &&
listedApps[index]
.app
.installedVersion !=
listedApps[index]
.app
.latestVersion
? appsProvider.areDownloadsRunning()
? Text(tr('pleaseWait'))
: Row(
mainAxisSize: MainAxisSize.min,
mainAxisAlignment:
MainAxisAlignment.end,
children: [
GestureDetector(
onTap: () {
appsProvider
.downloadAndInstallLatestApps(
[
listedApps[index]
.app
.id
],
globalNavigatorKey
.currentContext).catchError(
(e) {
showError(e, context);
});
},
child: Text(
listedApps[index]
.app
.additionalSettings[
'trackOnly'] ==
true
? tr('markUpdated')
: tr('update'),
style: TextStyle(
color:
Theme.of(context)
.colorScheme
.primary,
fontWeight:
FontWeight.bold),
)),
],
)
: const SizedBox.shrink(),
Row(
mainAxisSize: MainAxisSize.min,
children: [
GestureDetector(
onTap: changesUrl == null
? null
: () {
launchUrlString(changesUrl,
mode: LaunchMode
.externalApplication);
},
child: Text(
listedApps[index].app.releaseDate ==
null
? tr('changes')
: DateFormat('yyyy-MM-dd')
.format(listedApps[index]
.app
.releaseDate!),
style: const TextStyle(
fontStyle: FontStyle.italic,
decoration:
TextDecoration.underline),
))
],
),
],
))),
)
],
)),
onTap: () {
if (selectedApps.isNotEmpty) {
toggleAppSelected(listedApps[index].app);

View File

@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 0.11.5+124 # When changing this, update the tag in main() accordingly
version: 0.11.6+125 # When changing this, update the tag in main() accordingly
environment:
sdk: '>=2.18.2 <3.0.0'
@ -97,6 +97,7 @@ flutter:
assets:
- assets/translations/
- assets/graphics/
# An image asset can refer to one or more resolution-specific "variants", see
# https://flutter.dev/assets-and-images/#resolution-aware