11import 'dart:convert' ;
22import 'dart:typed_data' ;
3- import 'dart:ui' ;
43
54import 'package:flutter/material.dart' ;
65import 'package:iapetus/iapetus.dart' ;
@@ -9,24 +8,29 @@ import 'package:iapetus/iapetus_data.dart';
98void main () => runApp (const App ());
109
1110class App extends StatelessWidget {
12- const App ({Key ? key}) : super ( key: key );
11+ const App ({super . key} );
1312
1413 @override
15- Widget build (BuildContext context) =>
16- const MaterialApp (home: DecrypterScreen ());
14+ Widget build (BuildContext context) {
15+ return MaterialApp (
16+ home: DecrypterScreen (),
17+ theme: ThemeData .light (),
18+ darkTheme: ThemeData .dark (),
19+ );
20+ }
1721}
1822
1923class DecrypterScreen extends StatefulWidget {
20- const DecrypterScreen ({Key ? key}) : super ( key: key );
24+ const DecrypterScreen ({super . key} );
2125
2226 @override
23- _DecrypterScreenState createState () => _DecrypterScreenState ();
27+ State < DecrypterScreen > createState () => _DecrypterScreenState ();
2428}
2529
2630class _DecrypterScreenState extends State <DecrypterScreen > {
2731 static const _partners = [
2832 androidPartner,
29- androidLegacyPartner,
33+ androidLegacyPartner, // ignore: deprecated_member_use
3034 iosPartner,
3135 palmPartner,
3236 windowsMobilePartner,
@@ -99,76 +103,70 @@ class _DecrypterScreenState extends State<DecrypterScreen> {
99103 @override
100104 Widget build (BuildContext context) {
101105 return Scaffold (
102- appBar:
103- AppBar (title: const Text ('Pandora JSON API Decrypter by hacker1024' )),
104- body: GestureDetector (
105- behavior: HitTestBehavior .translucent,
106- onTap: () => FocusScope .of (context).unfocus (),
107- child: ListView (
108- padding: const EdgeInsets .all (8 ),
109- children: [
110- _ModeSelector (
111- partners: _partners,
112- selectedPartner: _selectedPartner,
113- request: _request,
114- removeBoilerplate: _removeBoilerplate,
115- onPartnerSelection: (partner) => setState (() {
116- _selectedPartner = partner;
117- _updateDecrypter ();
118- _decrypt ();
119- }),
120- onRequestToggle: (request) => setState (() {
121- _request = request;
122- _updateDecrypter ();
123- _decrypt ();
124- }),
125- onRemoveBoilerplateToggle: (removeBoilerplate) => setState (() {
126- _removeBoilerplate = removeBoilerplate;
127- _decrypt ();
128- }),
129- ),
130- const SizedBox (height: 8 ),
131- TextField (
132- controller: _textFieldController,
133- decoration: const InputDecoration (
134- border: OutlineInputBorder (),
135- labelText: 'Encrypted data' ,
136- ),
137- keyboardType: TextInputType .multiline,
138- maxLines: null ,
139- onChanged: (value) {
140- setState (() {
141- _encryptedData = value;
142- _decrypt ();
143- });
144- },
106+ appBar: AppBar (
107+ title: const Text ('Pandora JSON API Decrypter by hacker1024' ),
108+ ),
109+ body: ListView (
110+ padding: const EdgeInsets .all (8 ),
111+ children: [
112+ _ModeSelector (
113+ partners: _partners,
114+ selectedPartner: _selectedPartner,
115+ request: _request,
116+ removeBoilerplate: _removeBoilerplate,
117+ onPartnerSelection: (partner) => setState (() {
118+ _selectedPartner = partner;
119+ _updateDecrypter ();
120+ _decrypt ();
121+ }),
122+ onRequestToggle: (request) => setState (() {
123+ _request = request;
124+ _updateDecrypter ();
125+ _decrypt ();
126+ }),
127+ onRemoveBoilerplateToggle: (removeBoilerplate) => setState (() {
128+ _removeBoilerplate = removeBoilerplate;
129+ _decrypt ();
130+ }),
131+ ),
132+ const SizedBox (height: 8 ),
133+ TextField (
134+ controller: _textFieldController,
135+ decoration: const InputDecoration (
136+ border: OutlineInputBorder (),
137+ labelText: 'Encrypted data' ,
145138 ),
146- const SizedBox (height: 8 ),
147- if (_output? .isNotEmpty == true )
148- SizedBox (
149- width: double .infinity,
150- child: ColoredBox (
151- color: const Color (0xFFECECEC ),
152- child: Padding (
153- padding: const EdgeInsets .all (8 ),
154- child: SelectableText (
155- _output! ,
156- style: const TextStyle (
157- fontFeatures: [FontFeature .tabularFigures ()],
158- fontFamily: 'monospace' ,
159- fontFamilyFallback: [
160- 'Monaco' ,
161- 'Courier New' ,
162- 'Noto Mono' ,
163- 'Roboto Mono' ,
164- ],
165- ),
166- ),
139+ keyboardType: TextInputType .multiline,
140+ maxLines: null ,
141+ onChanged: (value) {
142+ setState (() {
143+ _encryptedData = value;
144+ _decrypt ();
145+ });
146+ },
147+ ),
148+ const SizedBox (height: 8 ),
149+ if (_output? .isNotEmpty == true )
150+ SizedBox (
151+ width: double .infinity,
152+ child: Padding (
153+ padding: const EdgeInsets .all (8 ),
154+ child: SelectableText (
155+ _output! ,
156+ style: const TextStyle (
157+ fontFeatures: [FontFeature .tabularFigures ()],
158+ fontFamily: 'monospace' ,
159+ fontFamilyFallback: [
160+ 'Monaco' ,
161+ 'Courier New' ,
162+ 'Noto Mono' ,
163+ 'Roboto Mono' ,
164+ ],
167165 ),
168166 ),
169167 ),
170- ] ,
171- ) ,
168+ ) ,
169+ ] ,
172170 ),
173171 );
174172 }
@@ -184,15 +182,14 @@ class _ModeSelector extends StatelessWidget {
184182 final ValueChanged <bool > onRemoveBoilerplateToggle;
185183
186184 const _ModeSelector ({
187- Key ? key,
188185 required this .partners,
189186 required this .selectedPartner,
190187 required this .request,
191188 required this .removeBoilerplate,
192189 required this .onPartnerSelection,
193190 required this .onRequestToggle,
194191 required this .onRemoveBoilerplateToggle,
195- }) : super (key : key) ;
192+ });
196193
197194 Widget _buildPartnerSelector (BuildContext context) {
198195 return InputDecorator (
0 commit comments