mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-08-17 04:08:09 +02:00
Compare commits
10 Commits
v0.11.0-be
...
v0.11.1-be
Author | SHA1 | Date | |
---|---|---|---|
|
3c61735706 | ||
|
a2879f5bfa | ||
|
b57f023739 | ||
|
c376a7abec | ||
|
31c6cc3f6f | ||
|
8de8438aeb | ||
|
2b0225dd5b | ||
|
f6af3a7998 | ||
|
bd29d7bc10 | ||
|
ffb3516a4b |
@@ -34,7 +34,7 @@
|
|||||||
"githubStarredRepos": "GitHub Csillagos Repo-k",
|
"githubStarredRepos": "GitHub Csillagos Repo-k",
|
||||||
"uname": "Felh.név",
|
"uname": "Felh.név",
|
||||||
"wrongArgNum": "Rossz számú argumentumot adott meg",
|
"wrongArgNum": "Rossz számú argumentumot adott meg",
|
||||||
"xIsTrackOnly": "A(z) {} csak nyomkövethető",
|
"xIsTrackOnly": "A(z) {} csak nyomonkövethető",
|
||||||
"source": "Forrás",
|
"source": "Forrás",
|
||||||
"app": "App",
|
"app": "App",
|
||||||
"appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások 'Csak nyomon követhetőek'.",
|
"appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások 'Csak nyomon követhetőek'.",
|
||||||
@@ -78,7 +78,7 @@
|
|||||||
"no": "Nem",
|
"no": "Nem",
|
||||||
"yes": "Igen",
|
"yes": "Igen",
|
||||||
"markSelectedAppsUpdated": "Jelölje meg a kiválasztott appokat frissítettként",
|
"markSelectedAppsUpdated": "Jelölje meg a kiválasztott appokat frissítettként",
|
||||||
"pinToTop": "Rögzítés a felülre",
|
"pinToTop": "Rögzítés felülre",
|
||||||
"unpinFromTop": "Eltávolít felülről",
|
"unpinFromTop": "Eltávolít felülről",
|
||||||
"resetInstallStatusForSelectedAppsQuestion": "Visszaállítja a kiválasztott appok telepítési állapotát?",
|
"resetInstallStatusForSelectedAppsQuestion": "Visszaállítja a kiválasztott appok telepítési állapotát?",
|
||||||
"installStatusOfXWillBeResetExplanation": "A kiválasztott appok telepítési állapota visszaáll.\n\nEz akkor segíthet, ha az Obtainiumban megjelenített app verzió hibás, frissítések vagy egyéb problémák miatt.",
|
"installStatusOfXWillBeResetExplanation": "A kiválasztott appok telepítési állapota visszaáll.\n\nEz akkor segíthet, ha az Obtainiumban megjelenített app verzió hibás, frissítések vagy egyéb problémák miatt.",
|
||||||
@@ -212,10 +212,10 @@
|
|||||||
"removeFromObtainium": "Eltávolítás az Obtainiumból",
|
"removeFromObtainium": "Eltávolítás az Obtainiumból",
|
||||||
"uninstallFromDevice": "Eltávolítás a készülékről",
|
"uninstallFromDevice": "Eltávolítás a készülékről",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzióérzékelés le van tiltva.",
|
"onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzióérzékelés le van tiltva.",
|
||||||
"useReleaseDateAsVersion": "Use Release Date as Version",
|
"useReleaseDateAsVersion": "Használja a Kiadás dátumát, mint verziót",
|
||||||
"releaseDateAsVersionExplanation": "This option should only be used for Apps where version detection does not work correctly, but a release date is available.",
|
"releaseDateAsVersionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzió érzékelése nem működik megfelelően, de elérhető a kiadás dátuma.",
|
||||||
"changes": "Changes",
|
"changes": "Változtatások",
|
||||||
"releaseDate": "Release Date",
|
"releaseDate": "Kiadás dátuma",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Eltávolítja az alkalmazást?",
|
"one": "Eltávolítja az alkalmazást?",
|
||||||
"other": "Eltávolítja az alkalmazást?"
|
"other": "Eltávolítja az alkalmazást?"
|
||||||
|
@@ -56,9 +56,9 @@
|
|||||||
"appsString": "App",
|
"appsString": "App",
|
||||||
"noApps": "Nessuna App",
|
"noApps": "Nessuna App",
|
||||||
"noAppsForFilter": "Nessuna App per i filtri selezionati",
|
"noAppsForFilter": "Nessuna App per i filtri selezionati",
|
||||||
"byX": "Da {}",
|
"byX": "Di {}",
|
||||||
"percentProgress": "Progresso: {}%",
|
"percentProgress": "Progresso: {}%",
|
||||||
"pleaseWait": "Attendere prego",
|
"pleaseWait": "In attesa",
|
||||||
"updateAvailable": "Aggiornamento disponibile",
|
"updateAvailable": "Aggiornamento disponibile",
|
||||||
"estimateInBracketsShort": "(prev.)",
|
"estimateInBracketsShort": "(prev.)",
|
||||||
"notInstalled": "Non installato",
|
"notInstalled": "Non installato",
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
"author": "Autore",
|
"author": "Autore",
|
||||||
"upToDateApps": "App aggiornate",
|
"upToDateApps": "App aggiornate",
|
||||||
"nonInstalledApps": "App non installate",
|
"nonInstalledApps": "App non installate",
|
||||||
"importExport": "Importa - Esporta",
|
"importExport": "Importa/Esporta",
|
||||||
"settings": "Impostazioni",
|
"settings": "Impostazioni",
|
||||||
"exportedTo": "Esportato in {}",
|
"exportedTo": "Esportato in {}",
|
||||||
"obtainiumExport": "Esporta da Obtainium",
|
"obtainiumExport": "Esporta da Obtainium",
|
||||||
@@ -213,10 +213,10 @@
|
|||||||
"removeFromObtainium": "Rimuovi da Obtainium",
|
"removeFromObtainium": "Rimuovi da Obtainium",
|
||||||
"uninstallFromDevice": "Disinstalla dal dispositivo",
|
"uninstallFromDevice": "Disinstalla dal dispositivo",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Funziona solo per le App con il rilevamento della versione disattivato.",
|
"onlyWorksWithNonVersionDetectApps": "Funziona solo per le App con il rilevamento della versione disattivato.",
|
||||||
"useReleaseDateAsVersion": "Use Release Date as Version",
|
"useReleaseDateAsVersion": "Usa data di rilascio come versione",
|
||||||
"releaseDateAsVersionExplanation": "This option should only be used for Apps where version detection does not work correctly, but a release date is available.",
|
"releaseDateAsVersionExplanation": "Questa opzione dovrebbe essere usata solo per le App in cui il rilevamento della versione non funziona correttamente, ma è disponibile una data di rilascio.",
|
||||||
"changes": "Changes",
|
"changes": "Novità",
|
||||||
"releaseDate": "Release Date",
|
"releaseDate": "Data di rilascio",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Rimuovere l'App?",
|
"one": "Rimuovere l'App?",
|
||||||
"other": "Rimuovere le App?"
|
"other": "Rimuovere le App?"
|
||||||
|
@@ -213,10 +213,10 @@
|
|||||||
"removeFromObtainium": "Obtainiumから削除する",
|
"removeFromObtainium": "Obtainiumから削除する",
|
||||||
"uninstallFromDevice": "デバイスからアンインストールする",
|
"uninstallFromDevice": "デバイスからアンインストールする",
|
||||||
"onlyWorksWithNonVersionDetectApps": "バージョン検出を無効にしているアプリにのみ動作します。",
|
"onlyWorksWithNonVersionDetectApps": "バージョン検出を無効にしているアプリにのみ動作します。",
|
||||||
"useReleaseDateAsVersion": "Use Release Date as Version",
|
"useReleaseDateAsVersion": "リリース日をバージョンとして使用する",
|
||||||
"releaseDateAsVersionExplanation": "This option should only be used for Apps where version detection does not work correctly, but a release date is available.",
|
"releaseDateAsVersionExplanation": "このオプションは、バージョン検出が正しく機能しないアプリで、リリース日が利用可能な場合にのみ使用する必要があります。",
|
||||||
"changes": "Changes",
|
"changes": "変更点",
|
||||||
"releaseDate": "Release Date",
|
"releaseDate": "リリース日",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "アプリを削除しますか?",
|
"one": "アプリを削除しますか?",
|
||||||
"other": "アプリを削除しますか?"
|
"other": "アプリを削除しますか?"
|
||||||
|
@@ -1,7 +1,9 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:html/parser.dart';
|
import 'package:html/parser.dart';
|
||||||
import 'package:http/http.dart';
|
import 'package:http/http.dart';
|
||||||
|
import 'package:obtainium/components/generated_form.dart';
|
||||||
import 'package:obtainium/custom_errors.dart';
|
import 'package:obtainium/custom_errors.dart';
|
||||||
import 'package:obtainium/providers/source_provider.dart';
|
import 'package:obtainium/providers/source_provider.dart';
|
||||||
|
|
||||||
@@ -9,6 +11,23 @@ class APKMirror extends AppSource {
|
|||||||
APKMirror() {
|
APKMirror() {
|
||||||
host = 'apkmirror.com';
|
host = 'apkmirror.com';
|
||||||
enforceTrackOnly = true;
|
enforceTrackOnly = true;
|
||||||
|
|
||||||
|
additionalSourceAppSpecificSettingFormItems = [
|
||||||
|
[
|
||||||
|
GeneratedFormSwitch('fallbackToOlderReleases',
|
||||||
|
label: tr('fallbackToOlderReleases'), defaultValue: true)
|
||||||
|
],
|
||||||
|
[
|
||||||
|
GeneratedFormTextField('filterReleaseTitlesByRegEx',
|
||||||
|
label: tr('filterReleaseTitlesByRegEx'),
|
||||||
|
required: false,
|
||||||
|
additionalValidators: [
|
||||||
|
(value) {
|
||||||
|
return regExValidator(value);
|
||||||
|
}
|
||||||
|
])
|
||||||
|
]
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -30,11 +49,31 @@ class APKMirror extends AppSource {
|
|||||||
String standardUrl,
|
String standardUrl,
|
||||||
Map<String, dynamic> additionalSettings,
|
Map<String, dynamic> additionalSettings,
|
||||||
) async {
|
) async {
|
||||||
|
bool fallbackToOlderReleases =
|
||||||
|
additionalSettings['fallbackToOlderReleases'] == true;
|
||||||
|
String? regexFilter =
|
||||||
|
(additionalSettings['filterReleaseTitlesByRegEx'] as String?)
|
||||||
|
?.isNotEmpty ==
|
||||||
|
true
|
||||||
|
? additionalSettings['filterReleaseTitlesByRegEx']
|
||||||
|
: null;
|
||||||
Response res = await get(Uri.parse('$standardUrl/feed'));
|
Response res = await get(Uri.parse('$standardUrl/feed'));
|
||||||
if (res.statusCode == 200) {
|
if (res.statusCode == 200) {
|
||||||
var item = parse(res.body).querySelector('item');
|
var items = parse(res.body).querySelectorAll('item');
|
||||||
String? titleString = item?.querySelector('title')?.innerHtml;
|
dynamic targetRelease;
|
||||||
String? dateString = item
|
for (int i = 0; i < items.length; i++) {
|
||||||
|
if (!fallbackToOlderReleases && i > 0) break;
|
||||||
|
String? nameToFilter = items[i].querySelector('title')?.innerHtml;
|
||||||
|
if (regexFilter != null &&
|
||||||
|
nameToFilter != null &&
|
||||||
|
!RegExp(regexFilter).hasMatch(nameToFilter.trim())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
targetRelease = items[i];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
String? titleString = targetRelease?.querySelector('title')?.innerHtml;
|
||||||
|
String? dateString = targetRelease
|
||||||
?.querySelector('pubDate')
|
?.querySelector('pubDate')
|
||||||
?.innerHtml
|
?.innerHtml
|
||||||
.split(' ')
|
.split(' ')
|
||||||
|
@@ -21,7 +21,7 @@ import 'package:easy_localization/src/easy_localization_controller.dart';
|
|||||||
// ignore: implementation_imports
|
// ignore: implementation_imports
|
||||||
import 'package:easy_localization/src/localization.dart';
|
import 'package:easy_localization/src/localization.dart';
|
||||||
|
|
||||||
const String currentVersion = '0.11.0';
|
const String currentVersion = '0.11.1';
|
||||||
const String currentReleaseTag =
|
const String currentReleaseTag =
|
||||||
'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
|
'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
|
||||||
|
|
||||||
|
@@ -266,6 +266,7 @@ class AppsPageState extends State<AppsPage> {
|
|||||||
)
|
)
|
||||||
: null,
|
: null,
|
||||||
title: Text(
|
title: Text(
|
||||||
|
maxLines: 1,
|
||||||
listedApps[index].installedInfo?.name ??
|
listedApps[index].installedInfo?.name ??
|
||||||
listedApps[index].app.name,
|
listedApps[index].app.name,
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
@@ -298,11 +299,14 @@ class AppsPageState extends State<AppsPage> {
|
|||||||
Row(
|
Row(
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Container(
|
||||||
'${listedApps[index].app.installedVersion ?? tr('notInstalled')}${listedApps[index].app.additionalSettings['trackOnly'] == true ? ' ${tr('estimateInBrackets')}' : ''}',
|
constraints: const BoxConstraints(
|
||||||
overflow: TextOverflow.ellipsis,
|
maxWidth: 150),
|
||||||
textAlign: TextAlign.end,
|
child: Text(
|
||||||
)
|
'${listedApps[index].app.installedVersion ?? tr('notInstalled')}${listedApps[index].app.additionalSettings['trackOnly'] == true ? ' ${tr('estimateInBrackets')}' : ''}',
|
||||||
|
overflow: TextOverflow.ellipsis,
|
||||||
|
textAlign: TextAlign.end,
|
||||||
|
))
|
||||||
]),
|
]),
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: changesUrl == null
|
onTap: changesUrl == null
|
||||||
|
@@ -830,10 +830,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: webview_flutter
|
name: webview_flutter
|
||||||
sha256: f7ec234830f86d0ef2bd664e8460b0038b8c1a83ff076035cad74ac70273753c
|
sha256: dad1f2caa3272071275436984eb123276a6810dbe7cd6f4c60697640b56a4699
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "4.0.2"
|
version: "4.0.4"
|
||||||
webview_flutter_android:
|
webview_flutter_android:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@@ -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
|
# 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
|
# 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.
|
# of the product and file versions while build-number is used as the build suffix.
|
||||||
version: 0.11.0+119 # When changing this, update the tag in main() accordingly
|
version: 0.11.1+120 # When changing this, update the tag in main() accordingly
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.18.2 <3.0.0'
|
sdk: '>=2.18.2 <3.0.0'
|
||||||
|
Reference in New Issue
Block a user