Compare commits

..

16 Commits

Author SHA1 Message Date
Imran
d33ca0948f Merge pull request #1567 from ImranR98/dev
- Share apps.obtainium.imranr.dev config links instead of HTML raw (#1553)
- Remove foreground requirement for Shizuku (#1561)
- Fix "illegal encoding" error (#1563)
2024-04-23 14:48:53 -04:00
Imran Remtulla
f76637a2e1 Update packages, increment version 2024-04-23 14:47:13 -04:00
Imran Remtulla
b7de627c7b Share apps.obtainium.imranr.dev config links instead of HTML raw (#1553) 2024-04-23 14:43:37 -04:00
Imran Remtulla
27fc60d437 Fix "illegal encoding" error (#1563), Remove foreground requirement for Shizuku (#1561) 2024-04-23 14:35:28 -04:00
Imran
ec240f946e Merge pull request #1555 from DwainZwerg/patch-15
Update de.json
2024-04-23 14:15:56 -04:00
Imran
ecd80fc371 Merge pull request #1556 from re7gog/re7gog
Fixes
2024-04-23 14:15:47 -04:00
Imran
68fa660e6d Merge pull request #1559 from CertainBot/patch-2
Spanish update
2024-04-23 14:15:37 -04:00
Imran
70f9e33d17 Merge pull request #1560 from jmoerschbach/conflicting_provider
Use applicationId for provider authorities
2024-04-23 14:15:09 -04:00
Imran
2e2dffd8e2 Merge pull request #1562 from ArcticFoxPro/main
Fix some questions of 简体中文(Simplified Chinese) and English.
2024-04-23 14:15:00 -04:00
ArcticFoxPro
0b1d5bf514 Fix some questions of 简体中文(zh-CN) and English.
Google's "Material You" is a specific noun in China, and it can be used directly in English, because Google China is also directly used in English, and translated into Chinese "您的材料" will look strange to Chinese users.
2024-04-22 16:01:21 +08:00
Jonas Mörschbach
2570c8e289 Use applicationId for provider authorities
Fixes #1378

Instead of hardcoding the authority string, use the ${applicationId} to
always make the provider unique.
2024-04-21 21:49:33 +02:00
CertainBot
43a8ba4de1 Spanish update
- English:
Minor changes.

- Spanish:
Modificaciones menores.
2024-04-21 21:20:55 +02:00
DwainZwerg
3f2fb1c1ed Update de.json 2024-04-21 15:45:26 +02:00
Gregory Velichko
40d303fb57 Partially rollback system theme (#1552) 2024-04-21 16:31:55 +03:00
Gregory Velichko
2c1687c33d Hide some settings if they are not available 2024-04-21 12:53:57 +03:00
Gregory Velichko
b688e7f160 Fix #968 2024-04-21 12:21:52 +03:00
14 changed files with 144 additions and 103 deletions

View File

@@ -47,7 +47,7 @@
android:value="2" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="dev.imranr.obtainium"
android:authorities="${applicationId}"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
@@ -72,4 +72,4 @@
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="29" />\
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
</manifest>
</manifest>

View File

@@ -24,7 +24,7 @@
"colour": "Farbe",
"standard": "Standard",
"custom": "Benutzerdefiniert",
"useMaterialYou": "Verwenden Sie Material, das Sie",
"useMaterialYou": "Verwende Material You",
"githubStarredRepos": "GitHub Starred Repos",
"uname": "Benutzername",
"wrongArgNum": "Falsche Anzahl von Argumenten (Parametern) übermittelt",

View File

@@ -113,6 +113,7 @@
"dark": "Dark",
"light": "Light",
"followSystem": "Follow System",
"followSystemThemeExplanation": "Following system theme is possible only by using third-party applications",
"useBlackTheme": "Use pure black dark theme",
"appSortBy": "App Sort By",
"authorName": "Author/Name",
@@ -258,7 +259,7 @@
"bgUpdatesOnWiFiOnly": "Disable background updates when not on WiFi",
"autoSelectHighestVersionCode": "Auto-select highest versionCode APK",
"versionExtractionRegEx": "Version String Extraction RegEx",
"matchGroupToUse": "Match Group to Use for Version String Extraction Regex",
"matchGroupToUse": "Match Group to Use for Version String Extraction RegEx",
"highlightTouchTargets": "Highlight less obvious touch targets",
"pickExportDir": "Pick Export Directory",
"autoExportOnChanges": "Auto-export on changes",

View File

@@ -1,10 +1,10 @@
{
"invalidURLForSource": "El URL de la aplicación {} no es válido",
"noReleaseFound": "No se ha podido encontrar una versión válida",
"noReleaseFound": "No se ha encontrado una versión válida",
"noVersionFound": "No se ha podido determinar la versión",
"urlMatchesNoSource": "El URL no coincide con ninguna fuente conocida",
"cantInstallOlderVersion": "No se puede instalar una versión previa de la aplicación",
"appIdMismatch": "El id. del paquete descargado no coincide con la ID de la aplicación instalada",
"appIdMismatch": "El ID del paquete descargado no coincide con el ID de la aplicación instalada",
"functionNotImplemented": "Esta clase no ha implementado esta función",
"placeholder": "Espacio reservado",
"someErrors": "Han ocurrido algunos errores",
@@ -52,7 +52,7 @@
"noAppsForFilter": "Sin aplicaciones para filtrar",
"byX": "por: {}",
"percentProgress": "Progreso: {} %",
"pleaseWait": "Espere un momento",
"pleaseWait": "Espere...",
"updateAvailable": "Actualización disponible",
"notInstalled": "No instalado",
"pseudoVersion": "pseudoversión",
@@ -100,7 +100,7 @@
"appURLList": "Lista de URL de aplicaciones",
"line": "Línea",
"searchX": "Buscar {}",
"noResults": "No se encontró ningún resultado",
"noResults": "No se ha encontrado ningún resultado",
"importX": "Importar desde {}",
"importedAppsIdDisclaimer": "Las aplicaciones importadas podrían mostrarse incorrectamente como «No instalada».\nPara solucionarlo, reinstálelas a través de Obtainium.\nEsto no debería afectar a los datos de las aplicaciones.\n\nSolo afecta a los URL y a los métodos de importación mediante terceros.",
"importErrors": "Errores de Importación",
@@ -175,7 +175,7 @@
"fdroid": "Repositorio oficial F-Droid",
"appIdOrName": "ID o Nombre de la Aplicación",
"appId": "ID de la Aplicación",
"appWithIdOrNameNotFound": "No se han encontrado aplicaciones con esa ID o nombre",
"appWithIdOrNameNotFound": "No se han encontrado aplicaciones con ese ID o nombre",
"reposHaveMultipleApps": "Los repositorios pueden contener varias aplicaciones",
"fdroidThirdPartyRepo": "Repositorio de tercera parte F-Droid",
"steamMobile": "Steam para móviles",
@@ -192,7 +192,7 @@
"downloadedX": "Descargado {}",
"releaseAsset": "Liberar activos",
"downloadNotifDescription": "Notifica al usuario del progreso de descarga de una aplicación",
"noAPKFound": "No se encontró el paquete de instalación APK",
"noAPKFound": "No se ha encontrado el paquete de instalación APK",
"noVersionDetection": "Sin detección de versiones",
"categorize": "Catogorizar",
"categories": "Categorías",
@@ -204,7 +204,7 @@
"addCategory": "Añadir categoría",
"label": "Nombre",
"language": "Idioma",
"copiedToClipboard": "Se copió en el portapapeles",
"copiedToClipboard": "Copiado en el portapapeles",
"storagePermissionDenied": "Permiso de almacenamiento rechazado",
"selectedCategorizeWarning": "Esto reemplazará cualquier ajuste de categoría para las aplicaciones seleccionadas.",
"filterAPKsByRegEx": "Filtrar por APK",
@@ -221,7 +221,7 @@
"standardVersionDetection": "Por versión",
"groupByCategory": "Agrupar por categoría",
"autoApkFilterByArch": "Filtrar APK por arquitectura del procesador (si es posible)",
"overrideSource": "Anular fuente",
"overrideSource": "Forzar desde la fuente",
"dontShowAgain": "No mostrar de nuevo",
"dontShowTrackOnlyWarnings": "No mostrar avisos sobre apps en 'solo seguimiento'",
"dontShowAPKOriginWarnings": "No mostrar avisos sobre las fuentes de las APKs",
@@ -230,7 +230,7 @@
"about": "Acerca",
"requiresCredentialsInSettings": "{}: Esto requiere credenciales adicionales (en ajustes)",
"checkOnStart": "Comprobar actualizaciones al inicio",
"tryInferAppIdFromCode": "Intentar deducir la ID de la app por el código fuente",
"tryInferAppIdFromCode": "Intentar deducir el ID de la app por el código fuente",
"removeOnExternalUninstall": "Auto eliminar apps desinstaladas externamente",
"pickHighestVersionCode": "Auto selección de versión superior del paquete APK",
"checkUpdateOnDetailPage": "Comprobar actualizaciones al abrir detalles de la app",
@@ -289,10 +289,10 @@
"parallelDownloads": "Permitir descargas paralelas",
"useShizuku": "Utilice Shizuku o Sui para instalar",
"shizukuBinderNotFound": "Shizuku no funciona",
"shizukuOld": "Versión antigua de Shizuku (<11) - actualízala",
"shizukuOld": "Versión antigua de Shizuku (<11) - actualícela",
"shizukuOldAndroidWithADB": "Shizuku corriendo en Android < 8.1 con ADB - actualiza Android o usa Sui en su lugar",
"shizukuPretendToBeGooglePlay": "Establecer Google Play como fuente de instalación (si se utiliza Shizuku)",
"useSystemFont": "Usar la fuente de impresión del sistema",
"useSystemFont": "Usar fuente del sistema",
"useVersionCodeAsOSVersion": "Usar la versión de la aplicación como versión detectada por el sistema operativo",
"requestHeader": "Encabezado de solicitud",
"useLatestAssetDateAsReleaseDate": "Usar la última carga de recursos como fecha de lanzamiento",

View File

@@ -113,6 +113,7 @@
"dark": "Тёмная",
"light": "Светлая",
"followSystem": "Системная",
"followSystemThemeExplanation": "Следование системной теме возможно только при использовании сторонних приложений",
"useBlackTheme": "Использовать чёрную тему",
"appSortBy": "Сортировка приложений",
"authorName": "Автор/Название",

View File

@@ -24,7 +24,7 @@
"colour": "配色",
"standard": "标准",
"custom": "定制",
"useMaterialYou": "使用您的材料",
"useMaterialYou": "使用 Material You",
"githubStarredRepos": "已星标的 GitHub 仓库",
"uname": "用户名",
"wrongArgNum": "参数数量错误",
@@ -190,7 +190,7 @@
"downloadingX": "正在下载“{}”",
"downloadX": "下载 {}",
"downloadedX": "下载 {}",
"releaseAsset": "释放资产",
"releaseAsset": "发行版",
"downloadNotifDescription": "提示应用的下载进度",
"noAPKFound": "未找到 APK 文件",
"noVersionDetection": "禁用版本检测",
@@ -257,8 +257,8 @@
"exemptFromBackgroundUpdates": "禁用后台更新(如果已经全局启用)",
"bgUpdatesOnWiFiOnly": "未连接 Wi-Fi 时禁用后台更新",
"autoSelectHighestVersionCode": "自动选择内部版本号最高的 APK 文件",
"versionExtractionRegEx": "版本号提取规则(正则表达式)",
"matchGroupToUse": "引用的捕获组",
"versionExtractionRegEx": "版本号匹配组规则(正则表达式)",
"matchGroupToUse": "引用匹配组规则,将用于版本字符串提取",
"highlightTouchTargets": "突出展示不明显的触摸区域",
"pickExportDir": "选择导出文件夹",
"autoExportOnChanges": "数据变更时自动导出",

View File

@@ -243,19 +243,28 @@ class HTML extends AppSource {
if ((additionalSettings['customLinkFilterRegex'] as String?)?.isNotEmpty ==
true) {
var reg = RegExp(additionalSettings['customLinkFilterRegex']);
links = allLinks
.where((element) => reg.hasMatch(
filterLinkByText ? element.value : Uri.decodeFull(element.key)))
.toList();
links = allLinks.where((element) {
var link = element.key;
try {
link = Uri.decodeFull(element.key);
} catch (e) {
// Some links may not have valid encoding
}
return reg.hasMatch(filterLinkByText ? element.value : link);
}).toList();
} else {
links = allLinks
.where((element) => Uri.parse(filterLinkByText
? element.value
: Uri.decodeFull(element.key))
.path
.toLowerCase()
.endsWith('.apk'))
.toList();
links = allLinks.where((element) {
var link = element.key;
try {
link = Uri.decodeFull(element.key);
} catch (e) {
// Some links may not have valid encoding
}
return Uri.parse(filterLinkByText ? element.value : link)
.path
.toLowerCase()
.endsWith('.apk');
}).toList();
}
if (!skipSort) {
links.sort((a, b) => additionalSettings['sortByLastLinkSegment'] == true
@@ -310,13 +319,19 @@ class HTML extends AppSource {
links = [MapEntry(currentUrl, currentUrl)];
}
var rel = links.last.key;
var relDecoded = rel;
try {
relDecoded = Uri.decodeFull(rel);
} catch (e) {
// Some links may not have valid encoding
}
String? version;
version = extractVersion(
additionalSettings['versionExtractionRegEx'] as String?,
additionalSettings['matchGroupToUse'] as String?,
additionalSettings['versionExtractWholePage'] == true
? versionExtractionWholePageString
: Uri.decodeFull(rel));
: relDecoded);
version ??=
additionalSettings['defaultPseudoVersioningMethod'] == 'APKLinkHash'
? rel.hashCode.toString()

View File

@@ -84,7 +84,7 @@ class HuaweiAppGallery extends AppSource {
}
var relDate = relDateStrAdj == null
? null
: DateFormat('yy-MM-dd-HH-mm').parse(relDateStrAdj.join(''));
: DateFormat('yy-MM-dd-HH-mm', 'en_US').parse(relDateStrAdj.join(''));
if (relDateStr == null) {
throw NoVersionError();
}

View File

@@ -882,11 +882,10 @@ class AppsPageState extends State<AppsPage> {
onPressed: selectedAppIds.isEmpty
? null
: () {
String urls =
'<p>${tr('customLinkMessage')}:</p>\n\n<ul>\n';
String urls = '';
for (var a in selectedApps) {
urls +=
' <li><a href="obtainium://app/${Uri.encodeComponent(jsonEncode({
'https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/${Uri.encodeComponent(jsonEncode({
'id': a.id,
'url': a.url,
'author': a.author,
@@ -895,10 +894,8 @@ class AppsPageState extends State<AppsPage> {
a.preferredApkIndex,
'additionalSettings':
jsonEncode(a.additionalSettings)
}))}">${a.name}</a></li>\n';
}))}\n\n';
}
urls +=
'</ul>\n\n<p><a href="$obtainiumUrl">${tr('about')}</a></p>';
Share.share(urls,
subject:
'Obtainium - ${tr('appsString')}');

View File

@@ -88,30 +88,12 @@ class _SettingsPageState extends State<SettingsPage> {
initUpdateIntervalInterpolator();
processIntervalSliderValue(settingsProvider.updateIntervalSliderVal);
var themeDropdown = FutureBuilder(
var followSystemThemeExplanation = FutureBuilder(
builder: (ctx, val) {
return DropdownButtonFormField(
decoration: InputDecoration(labelText: tr('theme')),
value: settingsProvider.theme,
items: [
DropdownMenuItem(
value: ThemeSettings.light,
child: Text(tr('light')),
),
DropdownMenuItem(
value: ThemeSettings.dark,
child: Text(tr('dark')),
),
if ((val.data?.version.sdkInt ?? 0) >= 29) DropdownMenuItem(
value: ThemeSettings.system,
child: Text(tr('followSystem')),
)
],
onChanged: (value) {
if (value != null) {
settingsProvider.theme = value;
}
});
return ((val.data?.version.sdkInt ?? 30) < 29) ?
Text(tr('followSystemThemeExplanation'),
style: Theme.of(context).textTheme.labelSmall)
: const SizedBox.shrink();
},
future: DeviceInfoPlugin().androidInfo
);
@@ -367,7 +349,7 @@ class _SettingsPageState extends State<SettingsPage> {
intervalSlider,
FutureBuilder(
builder: (ctx, val) {
return ((val.data?.version.sdkInt ?? 0) >= 30) || settingsProvider.useShizuku
return (settingsProvider.updateInterval > 0) && (((val.data?.version.sdkInt ?? 0) >= 30) || settingsProvider.useShizuku)
? Column(
crossAxisAlignment:
CrossAxisAlignment.start,
@@ -583,9 +565,34 @@ class _SettingsPageState extends State<SettingsPage> {
fontWeight: FontWeight.bold,
color: Theme.of(context).colorScheme.primary),
),
themeDropdown,
DropdownButtonFormField(
decoration: InputDecoration(labelText: tr('theme')),
value: settingsProvider.theme,
items: [
DropdownMenuItem(
value: ThemeSettings.system,
child: Text(tr('followSystem')),
),
DropdownMenuItem(
value: ThemeSettings.light,
child: Text(tr('light')),
),
DropdownMenuItem(
value: ThemeSettings.dark,
child: Text(tr('dark')),
)
],
onChanged: (value) {
if (value != null) {
settingsProvider.theme = value;
}
}),
height8,
if (settingsProvider.theme == ThemeSettings.system)
followSystemThemeExplanation,
height16,
Row(
if (settingsProvider.theme != ThemeSettings.light)
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Flexible(child: Text(tr('useBlackTheme'))),
@@ -593,10 +600,11 @@ class _SettingsPageState extends State<SettingsPage> {
value: settingsProvider.useBlackTheme,
onChanged: (value) {
settingsProvider.useBlackTheme = value;
})
],
),
height16,
}
)
]
),
height8,
useMaterialThemeSwitch,
if (!settingsProvider.useMaterialYou) colorPicker,
Row(

View File

@@ -525,10 +525,11 @@ class AppsProvider with ChangeNotifier {
?.installingPackageName
: (await pm.getInstallerPackageName(packageName: app.id));
} catch (e) {
return false; // App probably not installed
return false; // App probably not installed
}
int? targetSDK = (await getInstalledInfo(app.id))?.applicationInfo?.targetSdkVersion;
int? targetSDK =
(await getInstalledInfo(app.id))?.applicationInfo?.targetSdkVersion;
// The APK should target a new enough API
// https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(int)
if (!(targetSDK != null && targetSDK >= (osInfo.version.sdkInt - 3))) {
@@ -571,7 +572,8 @@ class AppsProvider with ChangeNotifier {
Future<bool> installXApkDir(
DownloadedXApkDir dir, BuildContext? firstTimeWithContext,
{bool needsBGWorkaround = false, bool shizukuPretendToBeGooglePlay = false}) async {
{bool needsBGWorkaround = false,
bool shizukuPretendToBeGooglePlay = false}) async {
// We don't know which APKs in an XAPK are supported by the user's device
// So we try installing all of them and assume success if at least one installed
// If 0 APKs installed, throw the first install error encountered
@@ -610,7 +612,8 @@ class AppsProvider with ChangeNotifier {
Future<bool> installApk(
DownloadedApk file, BuildContext? firstTimeWithContext,
{bool needsBGWorkaround = false, bool shizukuPretendToBeGooglePlay = false}) async {
{bool needsBGWorkaround = false,
bool shizukuPretendToBeGooglePlay = false}) async {
if (firstTimeWithContext != null &&
settingsProvider.beforeNewInstallsShareToAppVerifier &&
(await getInstalledInfo('dev.soupslurpr.appverifier')) != null) {
@@ -651,7 +654,8 @@ class AppsProvider with ChangeNotifier {
}
int? code;
if (!settingsProvider.useShizuku) {
code = await AndroidPackageInstaller.installApk(apkFilePath: file.file.path);
code =
await AndroidPackageInstaller.installApk(apkFilePath: file.file.path);
} else {
code = await ShizukuApkInstaller.installAPK(file.file.uri.toString(),
shizukuPretendToBeGooglePlay ? "com.android.vending" : "");
@@ -828,7 +832,7 @@ class AppsProvider with ChangeNotifier {
throw ObtainiumError(tr('cancelled'));
}
} else {
switch((await ShizukuApkInstaller.checkPermission())!){
switch ((await ShizukuApkInstaller.checkPermission())!) {
case 'binder_not_found':
throw ObtainiumError(tr('shizukuBinderNotFound'));
case 'old_shizuku':
@@ -839,7 +843,7 @@ class AppsProvider with ChangeNotifier {
throw ObtainiumError(tr('cancelled'));
}
}
if (!willBeSilent && context != null) {
if (!willBeSilent && context != null && !settingsProvider.useShizuku) {
// ignore: use_build_context_synchronously
await waitForUserToReturnToForeground(context);
}
@@ -850,31 +854,46 @@ class AppsProvider with ChangeNotifier {
bool sayInstalled = true;
var contextIfNewInstall =
apps[id]?.installedInfo == null ? context : null;
bool needBGWorkaround = willBeSilent && context == null && !settingsProvider.useShizuku;
bool needBGWorkaround =
willBeSilent && context == null && !settingsProvider.useShizuku;
if (downloadedFile != null) {
if (needBGWorkaround) {
// ignore: use_build_context_synchronously
installApk(downloadedFile, contextIfNewInstall, needsBGWorkaround: true);
installApk(downloadedFile, contextIfNewInstall,
needsBGWorkaround: true);
} else {
// ignore: use_build_context_synchronously
sayInstalled = await installApk(downloadedFile, contextIfNewInstall, shizukuPretendToBeGooglePlay: apps[id]!.app.additionalSettings['shizukuPretendToBeGooglePlay'] == true);
sayInstalled = await installApk(
downloadedFile, contextIfNewInstall,
shizukuPretendToBeGooglePlay:
apps[id]!.app.additionalSettings[
'shizukuPretendToBeGooglePlay'] ==
true);
}
} else {
if (needBGWorkaround) {
// ignore: use_build_context_synchronously
installXApkDir(downloadedDir!, contextIfNewInstall, needsBGWorkaround: true);
installXApkDir(downloadedDir!, contextIfNewInstall,
needsBGWorkaround: true);
} else {
// ignore: use_build_context_synchronously
sayInstalled = await installXApkDir(downloadedDir!, contextIfNewInstall, shizukuPretendToBeGooglePlay: apps[id]!.app.additionalSettings['shizukuPretendToBeGooglePlay'] == true);
sayInstalled = await installXApkDir(
downloadedDir!, contextIfNewInstall,
shizukuPretendToBeGooglePlay:
apps[id]!.app.additionalSettings[
'shizukuPretendToBeGooglePlay'] ==
true);
}
}
if (willBeSilent && context == null) {
if (!settingsProvider.useShizuku) {
notificationsProvider?.notify(SilentUpdateAttemptNotification(
[apps[id]!.app], id: id.hashCode));
[apps[id]!.app],
id: id.hashCode));
} else {
notificationsProvider?.notify(SilentUpdateNotification(
[apps[id]!.app], sayInstalled, id: id.hashCode));
[apps[id]!.app], sayInstalled,
id: id.hashCode));
}
}
if (sayInstalled) {

View File

@@ -19,7 +19,7 @@ String obtainiumId = 'dev.imranr.obtainium';
String obtainiumUrl = 'https://github.com/ImranR98/Obtainium';
Color obtainiumThemeColor = const Color(0xFF6438B5);
enum ThemeSettings { light, dark, system }
enum ThemeSettings { system, light, dark }
enum SortColumnSettings { added, nameAuthor, authorName, releaseDate }
@@ -59,7 +59,7 @@ class SettingsProvider with ChangeNotifier {
ThemeSettings get theme {
return ThemeSettings
.values[prefs?.getInt('theme') ?? ThemeSettings.light.index];
.values[prefs?.getInt('theme') ?? ThemeSettings.system.index];
}
set theme(ThemeSettings t) {

View File

@@ -79,10 +79,10 @@ packages:
dependency: "direct main"
description:
name: background_fetch
sha256: dbffec0317ccdef6e2014cb543e147f52441e29c4fcb53dfd23558c4d92ddece
sha256: "81d0d4eeecd17c971335438a5a55554c8302f479f92c7f7bc7f147f75d3f6074"
url: "https://pub.dev"
source: hosted
version: "1.3.2"
version: "1.3.3"
boolean_selector:
dependency: transitive
description:
@@ -135,10 +135,10 @@ packages:
dependency: "direct main"
description:
name: connectivity_plus
sha256: ebe15d94de9dd7c31dc2ac54e42780acdf3384b1497c69290c9f3c5b0279fc57
sha256: db7a4e143dc72cc3cb2044ef9b052a7ebfe729513e6a82943bc3526f784365b8
url: "https://pub.dev"
source: hosted
version: "6.0.2"
version: "6.0.3"
connectivity_plus_platform_interface:
dependency: transitive
description:
@@ -223,10 +223,10 @@ packages:
dependency: "direct main"
description:
name: easy_localization
sha256: c145aeb6584aedc7c862ab8c737c3277788f47488bfdf9bae0fe112bd0a4789c
sha256: "432698c31a488dd64c56d4759f20d04844baba5e9e4f2cb1abb9676257918b17"
url: "https://pub.dev"
source: hosted
version: "3.0.5"
version: "3.0.6"
easy_logger:
dependency: transitive
description:
@@ -271,10 +271,10 @@ packages:
dependency: "direct main"
description:
name: file_picker
sha256: b6283d7387310ad83bc4f3bc245b75d223a032ae6eba275afcd585de2b9a1476
sha256: "45c70b43df893027e441a6fa0aacc8f484fb9f9c60c746dc8f1dc4f774cf55cd"
url: "https://pub.dev"
source: hosted
version: "8.0.1"
version: "8.0.2"
fixnum:
dependency: transitive
description:
@@ -340,10 +340,10 @@ packages:
dependency: "direct main"
description:
name: flutter_local_notifications
sha256: a701df4866f9a38bb8e4450a54c143bbeeb0ce2381e7df5a36e1006f3b43bb28
sha256: "8cdc719114ab1c86c64bb7a86d3a679674c3637edd229e3a994797d4a1504ce4"
url: "https://pub.dev"
source: hosted
version: "17.0.1"
version: "17.1.0"
flutter_local_notifications_linux:
dependency: transitive
description:
@@ -356,10 +356,10 @@ packages:
dependency: transitive
description:
name: flutter_local_notifications_platform_interface
sha256: "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef"
sha256: "340abf67df238f7f0ef58f4a26d2a83e1ab74c77ab03cd2b2d5018ac64db30b7"
url: "https://pub.dev"
source: hosted
version: "7.0.0+1"
version: "7.1.0"
flutter_localizations:
dependency: transitive
description: flutter
@@ -715,18 +715,18 @@ packages:
dependency: "direct main"
description:
name: share_plus
sha256: fb5319f3aab4c5dda5ebb92dca978179ba21f8c783ee4380910ef4c1c6824f51
sha256: ef3489a969683c4f3d0239010cc8b7a2a46543a8d139e111c06c558875083544
url: "https://pub.dev"
source: hosted
version: "8.0.3"
version: "9.0.0"
share_plus_platform_interface:
dependency: transitive
description:
name: share_plus_platform_interface
sha256: "251eb156a8b5fa9ce033747d73535bf53911071f8d3b6f4f0b578505ce0d4496"
sha256: "0f9e4418835d1b2c3ae78fdb918251959106cefdbc4dd43526e182f80e82f6d4"
url: "https://pub.dev"
source: hosted
version: "3.4.0"
version: "4.0.0"
shared_preferences:
dependency: "direct main"
description:

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: 1.1.5+2262
version: 1.1.6+2263
environment:
sdk: '>=3.0.0 <4.0.0'
@@ -56,7 +56,7 @@ dependencies:
url: https://github.com/ImranR98/android_package_installer
ref: main
android_package_manager: ^0.7.0
share_plus: ^8.0.2
share_plus: ^9.0.0
sqflite: ^2.2.0+3
easy_localization: ^3.0.1
android_intent_plus: ^5.0.1