mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-07-16 22:56:44 +02:00
Compare commits
6 Commits
v0.11.5-be
...
v0.11.6-be
Author | SHA1 | Date | |
---|---|---|---|
2679d5a1aa | |||
e49c09c0ff | |||
c9318ef2b5 | |||
2e88c8eede | |||
8648c1bea7 | |||
b22e2bab0c |
@ -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?"
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user