Removed redundant code

This commit is contained in:
Imran Remtulla
2022-09-17 00:09:46 -04:00
parent 4ccf7cbc92
commit 02a5749ba7
2 changed files with 29 additions and 70 deletions

View File

@@ -4,8 +4,9 @@ import 'package:flutter/services.dart';
class GeneratedFormItem { class GeneratedFormItem {
late String message; late String message;
late bool required; late bool required;
late int lines;
GeneratedFormItem(this.message, this.required); GeneratedFormItem(this.message, this.required, this.lines);
} }
class GeneratedFormModal extends StatefulWidget { class GeneratedFormModal extends StatefulWidget {
@@ -33,6 +34,8 @@ class _GeneratedFormModalState extends State<GeneratedFormModal> {
TextFormField( TextFormField(
decoration: InputDecoration(helperText: e.message), decoration: InputDecoration(helperText: e.message),
controller: controller, controller: controller,
minLines: e.lines <= 1 ? null : e.lines,
maxLines: e.lines <= 1 ? 1 : e.lines,
validator: e.required validator: e.required
? (value) { ? (value) {
if (value == null || value.isEmpty) { if (value == null || value.isEmpty) {

View File

@@ -73,76 +73,32 @@ class _ImportExportPageState extends State<ImportExportPage> {
showDialog( showDialog(
context: context, context: context,
builder: (BuildContext ctx) { builder: (BuildContext ctx) {
final formKey = GlobalKey<FormState>(); return GeneratedFormModal(
final jsonInputController = TextEditingController(); title: 'Obtainium Import',
items: [
return AlertDialog( GeneratedFormItem(
scrollable: true, 'Obtainium Export JSON Data', true, 7)
title: const Text('Import App List'), ]);
content: Column(children: [ }).then((values) {
const Text( if (values != null) {
'Copy the contents of the Obtainium export file and paste them into the field below:'), try {
Form( jsonDecode(values[0]);
key: formKey, } catch (e) {
child: TextFormField( throw 'Invalid input';
minLines: 7, }
maxLines: 7, appsProvider.importApps(values[0]).then((value) {
decoration: const InputDecoration( ScaffoldMessenger.of(context).showSnackBar(
helperText: 'Obtainium export data'), SnackBar(
controller: jsonInputController, content: Text(
validator: (value) { '$value App${value == 1 ? '' : 's'} Imported')),
if (value == null || value.isEmpty) {
return 'Please enter your Obtainium export data';
}
bool isJSON = true;
try {
jsonDecode(value);
} catch (e) {
isJSON = false;
}
if (!isJSON) {
return 'Invalid input';
}
return null;
},
),
)
]),
actions: [
TextButton(
onPressed: () {
HapticFeedback.lightImpact();
Navigator.of(context).pop();
},
child: const Text('Cancel')),
TextButton(
onPressed: () {
HapticFeedback.heavyImpact();
if (formKey.currentState!.validate()) {
appsProvider
.importApps(
jsonInputController.value.text)
.then((value) {
ScaffoldMessenger.of(context)
.showSnackBar(
SnackBar(
content: Text(
'$value App${value == 1 ? '' : 's'} Imported')),
);
}).catchError((e) {
ScaffoldMessenger.of(context)
.showSnackBar(
SnackBar(content: Text(e.toString())),
);
}).whenComplete(() {
Navigator.of(context).pop();
});
}
},
child: const Text('Import')),
],
); );
}); });
}
}).catchError((e) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(e.toString())),
);
});
}, },
child: const Text('Obtainium Import')), child: const Text('Obtainium Import')),
const Divider( const Divider(
@@ -157,7 +113,7 @@ class _ImportExportPageState extends State<ImportExportPage> {
return GeneratedFormModal( return GeneratedFormModal(
title: 'Import ${source.name}', title: 'Import ${source.name}',
items: source.requiredArgs items: source.requiredArgs
.map((e) => GeneratedFormItem(e, true)) .map((e) => GeneratedFormItem(e, true, 1))
.toList()); .toList());
}).then((values) { }).then((values) {
if (values != null) { if (values != null) {