mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-04 07:13:28 +01:00 
			
		
		
		
	Merge pull request #975 from ImranR98/dev
Less notif spam, no check in aeroplane mode (#974)
This commit is contained in:
		@@ -1,3 +1,5 @@
 | 
				
			|||||||
 | 
					import 'dart:io';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import 'package:android_package_installer/android_package_installer.dart';
 | 
					import 'package:android_package_installer/android_package_installer.dart';
 | 
				
			||||||
import 'package:easy_localization/easy_localization.dart';
 | 
					import 'package:easy_localization/easy_localization.dart';
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
@@ -72,6 +74,9 @@ class MultiAppMultiError extends ObtainiumError {
 | 
				
			|||||||
  MultiAppMultiError() : super(tr('placeholder'), unexpected: true);
 | 
					  MultiAppMultiError() : super(tr('placeholder'), unexpected: true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  add(String appId, dynamic error, {String? appName}) {
 | 
					  add(String appId, dynamic error, {String? appName}) {
 | 
				
			||||||
 | 
					    if (error is SocketException) {
 | 
				
			||||||
 | 
					      error = error.message;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    rawErrors[appId] = error;
 | 
					    rawErrors[appId] = error;
 | 
				
			||||||
    var string = error.toString();
 | 
					    var string = error.toString();
 | 
				
			||||||
    var tempIds = idsByErrorString.remove(string);
 | 
					    var tempIds = idsByErrorString.remove(string);
 | 
				
			||||||
@@ -83,12 +88,17 @@ class MultiAppMultiError extends ObtainiumError {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  String errorString(String appId) =>
 | 
					  String errorString(String appId, {bool includeIdsWithNames = false}) =>
 | 
				
			||||||
      '${appIdNames.containsKey(appId) ? '${appIdNames[appId]} ($appId)' : appId}: ${rawErrors[appId].toString()}';
 | 
					      '${appIdNames.containsKey(appId) ? '${appIdNames[appId]}${includeIdsWithNames ? ' ($appId)' : ''}' : appId}: ${rawErrors[appId].toString()}';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  String errorsAppsString(String errString, List<String> appIds,
 | 
				
			||||||
 | 
					          {bool includeIdsWithNames = false}) =>
 | 
				
			||||||
 | 
					      '$errString [${list2FriendlyString(appIds.map((id) => appIdNames.containsKey(id) == true ? '${appIdNames[id]}${includeIdsWithNames ? ' ($id)' : ''}' : id).toList())}]';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  String toString() =>
 | 
					  String toString() => idsByErrorString.entries
 | 
				
			||||||
      idsByErrorString.keys.map((e) => errorString(e)).join('\n\n');
 | 
					      .map((e) => errorsAppsString(e.key, e.value))
 | 
				
			||||||
 | 
					      .join('\n\n');
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
showError(dynamic e, BuildContext context) {
 | 
					showError(dynamic e, BuildContext context) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,7 +19,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.14.24';
 | 
					const String currentVersion = '0.14.25';
 | 
				
			||||||
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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1375,6 +1375,30 @@ Future<void> bgUpdateCheck(int taskId, Map<String, dynamic>? params) async {
 | 
				
			|||||||
  logs.add(
 | 
					  logs.add(
 | 
				
			||||||
      'BG ${installMode ? 'install' : 'update'} task $taskId: Started (${installMode ? toInstall.length : toCheck.length}).');
 | 
					      'BG ${installMode ? 'install' : 'update'} task $taskId: Started (${installMode ? toInstall.length : toCheck.length}).');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  var netResult = await (Connectivity().checkConnectivity());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (netResult == ConnectivityResult.none) {
 | 
				
			||||||
 | 
					    var networkBasedRetryInterval = 15;
 | 
				
			||||||
 | 
					    var nextRegularCheck = appsProvider.settingsProvider.lastBGCheckTime
 | 
				
			||||||
 | 
					        .add(Duration(minutes: appsProvider.settingsProvider.updateInterval));
 | 
				
			||||||
 | 
					    var potentialNetworkRetryCheck =
 | 
				
			||||||
 | 
					        DateTime.now().add(Duration(minutes: networkBasedRetryInterval));
 | 
				
			||||||
 | 
					    var shouldRetry = potentialNetworkRetryCheck.isBefore(nextRegularCheck);
 | 
				
			||||||
 | 
					    logs.add(
 | 
				
			||||||
 | 
					        'BG update task $taskId: No network. Will ${shouldRetry ? 'retry in $networkBasedRetryInterval minutes' : 'not retry'}.');
 | 
				
			||||||
 | 
					    AndroidAlarmManager.oneShot(
 | 
				
			||||||
 | 
					        const Duration(minutes: 15), taskId + 1, bgUpdateCheck,
 | 
				
			||||||
 | 
					        params: {
 | 
				
			||||||
 | 
					          'toCheck': toCheck
 | 
				
			||||||
 | 
					              .map((entry) => {'key': entry.key, 'value': entry.value})
 | 
				
			||||||
 | 
					              .toList(),
 | 
				
			||||||
 | 
					          'toInstall': toInstall
 | 
				
			||||||
 | 
					              .map((entry) => {'key': entry.key, 'value': entry.value})
 | 
				
			||||||
 | 
					              .toList(),
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (!installMode) {
 | 
					  if (!installMode) {
 | 
				
			||||||
    // If in update mode, we check for updates.
 | 
					    // If in update mode, we check for updates.
 | 
				
			||||||
    // We divide the results into 4 groups:
 | 
					    // We divide the results into 4 groups:
 | 
				
			||||||
@@ -1391,7 +1415,7 @@ Future<void> bgUpdateCheck(int taskId, Map<String, dynamic>? params) async {
 | 
				
			|||||||
    List<App> toNotify = [];
 | 
					    List<App> toNotify = [];
 | 
				
			||||||
    List<MapEntry<String, int>> toRetry = [];
 | 
					    List<MapEntry<String, int>> toRetry = [];
 | 
				
			||||||
    var retryAfterXSeconds = 0;
 | 
					    var retryAfterXSeconds = 0;
 | 
				
			||||||
    List<String> toThrow = [];
 | 
					    MultiAppMultiError toThrow = MultiAppMultiError();
 | 
				
			||||||
    var networkRestricted = false;
 | 
					    var networkRestricted = false;
 | 
				
			||||||
    if (appsProvider.settingsProvider.bgUpdatesOnWiFiOnly) {
 | 
					    if (appsProvider.settingsProvider.bgUpdatesOnWiFiOnly) {
 | 
				
			||||||
      var netResult = await (Connectivity().checkConnectivity());
 | 
					      var netResult = await (Connectivity().checkConnectivity());
 | 
				
			||||||
@@ -1427,7 +1451,7 @@ Future<void> bgUpdateCheck(int taskId, Map<String, dynamic>? params) async {
 | 
				
			|||||||
              retryAfterXSeconds = minRetryIntervalForThisApp;
 | 
					              retryAfterXSeconds = minRetryIntervalForThisApp;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          } else {
 | 
					          } else {
 | 
				
			||||||
            toThrow.add(key);
 | 
					            toThrow.add(key, err, appName: errors?.appIdNames[key]);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
@@ -1455,10 +1479,10 @@ Future<void> bgUpdateCheck(int taskId, Map<String, dynamic>? params) async {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Send the error notifications
 | 
					    // Send the error notifications
 | 
				
			||||||
    if (toThrow.isNotEmpty) {
 | 
					    if (toThrow.rawErrors.isNotEmpty) {
 | 
				
			||||||
      for (var appId in toThrow) {
 | 
					      for (var element in toThrow.idsByErrorString.entries) {
 | 
				
			||||||
        notificationsProvider.notify(ErrorCheckingUpdatesNotification(
 | 
					        notificationsProvider.notify(ErrorCheckingUpdatesNotification(
 | 
				
			||||||
            errors!.errorString(appId),
 | 
					            errors!.errorsAppsString(element.key, element.value),
 | 
				
			||||||
            id: Random().nextInt(10000)));
 | 
					            id: Random().nextInt(10000)));
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,10 +46,10 @@ packages:
 | 
				
			|||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
      name: archive
 | 
					      name: archive
 | 
				
			||||||
      sha256: "06a96f1249f38a00435b3b0c9a3246d934d7dbc8183fc7c9e56989860edb99d4"
 | 
					      sha256: ca12e6c9ac022f33fd89128e7007fb5e97ab6e814d4fa05dd8d4f2db1e3c69cb
 | 
				
			||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "3.4.4"
 | 
					    version: "3.4.5"
 | 
				
			||||||
  args:
 | 
					  args:
 | 
				
			||||||
    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.14.24+216 # When changing this, update the tag in main() accordingly
 | 
					version: 0.14.25+217 # When changing this, update the tag in main() accordingly
 | 
				
			||||||
 | 
					
 | 
				
			||||||
environment:
 | 
					environment:
 | 
				
			||||||
  sdk: '>=3.0.0 <4.0.0'
 | 
					  sdk: '>=3.0.0 <4.0.0'
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user