chore: Merge dev to main (#1529)

This commit is contained in:
Ushie 2023-11-27 11:06:43 +03:00 committed by GitHub
commit 63c29bdd75
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 50 additions and 16 deletions

View file

@ -197,7 +197,7 @@ class AppSelectorViewModel extends BaseViewModel {
Future showSelectFromStorageDialog(BuildContext context) async {
return showDialog(
context: context,
builder: (context) => SimpleDialog(
builder: (innerContext) => SimpleDialog(
alignment: Alignment.center,
contentPadding:
const EdgeInsets.symmetric(horizontal: 20, vertical: 20),
@ -206,7 +206,7 @@ class AppSelectorViewModel extends BaseViewModel {
Icon(
Icons.block,
size: 28,
color: Theme.of(context).colorScheme.primary,
color: Theme.of(innerContext).colorScheme.primary,
),
const SizedBox(height: 20),
I18nText(
@ -234,7 +234,7 @@ class AppSelectorViewModel extends BaseViewModel {
const SizedBox(height: 30),
CustomMaterialButton(
onPressed: () async {
Navigator.pop(context);
Navigator.pop(innerContext);
await selectAppFromStorage(context);
},
label: Row(
@ -250,7 +250,7 @@ class AppSelectorViewModel extends BaseViewModel {
CustomMaterialButton(
isFilled: false,
onPressed: () {
Navigator.pop(context);
Navigator.pop(innerContext);
},
label: Row(
mainAxisAlignment: MainAxisAlignment.center,

View file

@ -179,18 +179,48 @@ class InstallerViewModel extends BaseViewModel {
}
}
void _trimLogs(List<String> logLines, String keyword, String? newString) {
final lineCount = logLines.where((line) => line.endsWith(keyword)).length;
final index = logLines.indexWhere((line) => line.endsWith(keyword));
if (newString != null && lineCount > 0) {
logLines.insert(index, newString.replaceAll('{lineCount}', lineCount.toString()));
}
logLines.removeWhere((lines) => lines.endsWith(keyword));
}
dynamic _getPatchOptionValue(String patchName, Option option) {
final Option? savedOption = _managerAPI.getPatchOption(_app.packageName, patchName, option.key);
if (savedOption != null) {
return savedOption.value;
} else {
return option.value;
}
}
String _formatPatches(List<Patch> patches) {
if (patches.isEmpty) {
return 'None';
}
return patches.map((p) => p.name + (p.options.isEmpty ? '' : ' [${p.options.map((o) => '${o.title}: ${_getPatchOptionValue(p.name, o)}').join(", ")}]')).toList().join(', ');
}
Future<void> copyLogs() async {
final info = await AboutInfo.getInfo();
dynamic getValue(String patchName, Option option) {
final Option? savedOption =
_managerAPI.getPatchOption(_app.packageName, patchName, option.key);
if (savedOption != null) {
return savedOption.value;
} else {
return option.value;
}
}
// Trim out extra lines
final logsTrimmed = logs.split('\n');
_trimLogs(logsTrimmed, 'succeeded', 'Applied {lineCount} patches');
_trimLogs(logsTrimmed, '.dex', 'Compiled {lineCount} dex files');
// Get patches added / removed
final defaultPatches = _patcherAPI.getFilteredPatches(_app.packageName).where((p) => !p.excluded).toList();
final patchesAdded = _patches.where((p) => !defaultPatches.contains(p)).toList();
final patchesRemoved = defaultPatches.where((p) => !_patches.contains(p)).toList();
// Options changed
final patchesChanged = defaultPatches.where((p) => _patches.contains(p) && p.options.any((o) => _getPatchOptionValue(p.name, o) != o.value)).toList();
// Add Info
final formattedLogs = [
'- Device Info',
'ReVanced Manager: ${info['version']}',
@ -203,7 +233,10 @@ class InstallerViewModel extends BaseViewModel {
'\n- Patch Info',
'App: ${_app.packageName} v${_app.version}',
'Patches version: ${_managerAPI.patchesVersion}',
'Patches: ${_patches.map((p) => p.name + (p.options.isEmpty ? '' : ' [${p.options.map((o) => '${o.title}: ${getValue(p.name, o)}').join(", ")}]')).toList().join(", ")}',
'Patches added: ${_formatPatches(patchesAdded)}',
'Patches removed: ${_formatPatches(patchesRemoved)}',
'Options changed: ${_formatPatches(patchesChanged)}',
'\n- Settings',
'Allow changing patch selection: ${_managerAPI.isPatchesChangeEnabled()}',
'Version compatibility check: ${_managerAPI.isVersionCompatibilityCheckEnabled()}',
@ -212,7 +245,7 @@ class InstallerViewModel extends BaseViewModel {
'Integration source: ${_managerAPI.getIntegrationsRepo()}',
'\n- Logs',
logs,
logsTrimmed.join('\n'),
];
Clipboard.setData(ClipboardData(text: formattedLogs.join('\n')));
@ -343,6 +376,7 @@ class InstallerViewModel extends BaseViewModel {
isCanceled = true;
update(0.5, 'Canceling...', 'Canceling patching process');
await _patcherAPI.stopPatcher();
await WakelockPlus.disable();
update(-100.0, 'Canceled...', 'Press back to exit');
} on Exception catch (e) {
if (kDebugMode) {

View file

@ -4,7 +4,7 @@ homepage: https://github.com/revanced/revanced-manager
publish_to: 'none'
version: 1.16.0+101600000
version: 1.17.0+101700000
environment:
sdk: '>=3.0.0 <4.0.0'