Skip to content

Commit

Permalink
Flutter Version Upgrade. Code Fix but Testing Pending
Browse files Browse the repository at this point in the history
  • Loading branch information
git-elliot committed Aug 8, 2022
1 parent 43b2ab3 commit 1a50a40
Show file tree
Hide file tree
Showing 19 changed files with 179 additions and 56 deletions.
6 changes: 6 additions & 0 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,18 @@ android {
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}

flavorDimensions "deploy"

productFlavors {
dev {
dimension "deploy"
signingConfig signingConfigs.debug
}
fdroid {
dimension "deploy"
signingConfig signingConfigs.release
Expand Down
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ buildscript {
}

dependencies {
classpath 'com.android.tools.build:gradle:7.1.0-rc01'
classpath 'com.android.tools.build:gradle:7.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
Expand Down
1 change: 1 addition & 0 deletions lib/generated_plugin_registrant.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

// ignore_for_file: directives_ordering
// ignore_for_file: lines_longer_than_80_chars
// ignore_for_file: depend_on_referenced_packages

import 'package:network_info_plus_web/network_info_plus_web.dart';
import 'package:package_info_plus_web/package_info_plus_web.dart';
Expand Down
6 changes: 3 additions & 3 deletions lib/pages/home_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import 'package:vernet/models/wifi_info.dart';
import 'package:vernet/pages/dns/dns_page.dart';
import 'package:vernet/pages/dns/reverse_dns_page.dart';
import 'package:vernet/pages/host_scan_page/host_scan_page.dart';
import 'package:vernet/pages/network_troubleshoot/ping_page.dart';
import 'package:vernet/pages/network_troubleshoot/port_scan_page.dart';
import 'package:vernet/pages/ping_page/ping_page.dart';
import 'package:vernet/pages/port_scan_page/port_scan_page.dart';
import 'package:vernet/ui/custom_tile.dart';

class HomePage extends StatefulWidget {
Expand Down Expand Up @@ -133,7 +133,7 @@ class _WifiDetailState extends State<HomePage> {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const PortScanPage(),
builder: (context) => PortScanPage(),
),
);
},
Expand Down
34 changes: 17 additions & 17 deletions lib/pages/host_scan_page/device_in_the_network.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import 'package:network_tools/network_tools.dart';
class DeviceInTheNetwork {
/// Create basic device with default (not the correct) icon
DeviceInTheNetwork({
required this.ip,
required this.internetAddress,
required this.make,
required this.pingData,
this.iconData = Icons.devices,
Expand All @@ -23,9 +23,9 @@ class DeviceInTheNetwork {
required String gatewayIp,
}) {
return DeviceInTheNetwork.createWithAllNecessaryFields(
ip: activeHost.ip,
internetAddress: activeHost.internetAddress,
hostId: activeHost.hostId,
make: activeHost.make,
make: activeHost.hostName,
pingData: activeHost.pingData,
currentDeviceIp: currentDeviceIp,
gatewayIp: gatewayIp,
Expand All @@ -34,28 +34,28 @@ class DeviceInTheNetwork {

/// Create the object with the correct field and icon
factory DeviceInTheNetwork.createWithAllNecessaryFields({
required String ip,
required int hostId,
required String make,
required InternetAddress internetAddress,
required String hostId,
required Future<String?> make,
required PingData pingData,
required String currentDeviceIp,
required String gatewayIp,
}) {
final IconData iconData = getHostIcon(
currentDeviceIp: currentDeviceIp,
hostIp: ip,
hostIp: internetAddress.address,
gatewayIp: gatewayIp,
);

final String deviceMake = getDeviceMake(
final Future<String?> deviceMake = getDeviceMake(
currentDeviceIp: currentDeviceIp,
hostIp: ip,
hostIp: internetAddress.address,
gatewayIp: gatewayIp,
hostMake: make,
);

return DeviceInTheNetwork(
ip: ip,
internetAddress: internetAddress,
make: deviceMake,
pingData: pingData,
hostId: hostId,
Expand All @@ -64,22 +64,22 @@ class DeviceInTheNetwork {
}

/// Ip of the device
final String ip;
final String make;
final InternetAddress internetAddress;
final Future<String?> make;
final PingData pingData;
final IconData iconData;
int? hostId;
String? hostId;

static String getDeviceMake({
static Future<String?> getDeviceMake({
required String currentDeviceIp,
required String hostIp,
required String gatewayIp,
required String hostMake,
required Future<String?> hostMake,
}) {
if (currentDeviceIp == hostIp) {
return 'This device';
return Future.value('This device');
} else if (gatewayIp == hostIp) {
return 'Router/Gateway';
return Future.value('Router/Gateway');
}
return hostMake;
}
Expand Down
11 changes: 6 additions & 5 deletions lib/pages/host_scan_page/host_scna_bloc/host_scan_bloc.dart
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,10 @@ class HostScanBloc extends Bloc<HostScanEvent, HostScanState> {

activeHostList.add(tempDeviceInTheNetwork);
activeHostList.sort((a, b) {
final int aIp =
int.parse(a.ip.substring(a.ip.lastIndexOf('.') + 1));
final int bIp =
int.parse(b.ip.substring(b.ip.lastIndexOf('.') + 1));
final int aIp = int.parse(a.internetAddress.address
.substring(a.internetAddress.address.lastIndexOf('.') + 1));
final int bIp = int.parse(b.internetAddress.address
.substring(b.internetAddress.address.lastIndexOf('.') + 1));
return aIp.compareTo(bIp);
});
emit(const HostScanState.loadInProgress());
Expand Down Expand Up @@ -114,7 +114,8 @@ class HostScanBloc extends Bloc<HostScanEvent, HostScanState> {

/// Will contain all the hosts that got discovered in the network, will
/// be use inorder to cancel on dispose of the page.
final Stream<ActiveHost> hostsDiscoveredInNetwork = HostScanner.discover(
final Stream<ActiveHost> hostsDiscoveredInNetwork =
HostScanner.getAllPingableDevices(
subnetIsolate,
firstSubnet: firstSubnetIsolate,
lastSubnet: lastSubnetIsolate,
Expand Down
18 changes: 12 additions & 6 deletions lib/pages/host_scan_page/widgets/host_scan_widget.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import 'package:flutter/services.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:vernet/pages/host_scan_page/device_in_the_network.dart';
import 'package:vernet/pages/host_scan_page/host_scna_bloc/host_scan_bloc.dart';
import 'package:vernet/pages/network_troubleshoot/port_scan_page.dart';
import 'package:vernet/pages/port_scan_page/port_scan_page.dart';

class HostScanWidget extends StatelessWidget {
@override
Expand Down Expand Up @@ -48,23 +48,29 @@ class HostScanWidget extends StatelessWidget {
final DeviceInTheNetwork host = activeHostList[index];
return ListTile(
leading: Icon(host.iconData),
title: Text(host.make),
subtitle: Text(host.ip),
title: FutureBuilder(
future: host.make,
builder: (context, AsyncSnapshot<String?> snapshot) {
return Text(snapshot.data ?? '');
},
),
subtitle: Text(host.internetAddress.address),
trailing: IconButton(
tooltip: 'Scan open ports for this target',
icon: const Icon(Icons.radar),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
PortScanPage(target: host.ip),
builder: (context) => PortScanPage(
target: host.internetAddress.address),
),
);
},
),
onLongPress: () {
Clipboard.setData(ClipboardData(text: host.ip));
Clipboard.setData(ClipboardData(
text: host.internetAddress.address));
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('IP copied to clipboard'),
Expand Down
22 changes: 11 additions & 11 deletions lib/pages/network_troubleshoot/port_scan_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import 'package:vernet/models/port.dart';
import 'package:vernet/ui/custom_tile.dart';
import 'package:vernet/ui/popular_chip.dart';

class PortScanPage extends StatefulWidget {
const PortScanPage({Key? key, this.target = ''}) : super(key: key);
class _PortScanPage extends StatefulWidget {
const _PortScanPage({Key? key, this.target = ''}) : super(key: key);

final String target;

Expand All @@ -20,11 +20,12 @@ class PortScanPage extends StatefulWidget {

enum ScanType { single, top, range }

class _PortScanPageState extends State<PortScanPage>
class _PortScanPageState extends State<_PortScanPage>
with SingleTickerProviderStateMixin {
final Set<OpenPort> _openPorts = {};
final Map<String, Port> _allPorts = {};
double _progress = 0;

final TextEditingController _targetIPEditingController =
TextEditingController();
final TextEditingController _singlePortEditingController =
Expand Down Expand Up @@ -55,12 +56,10 @@ class _PortScanPageState extends State<PortScanPage>
}
}

void _handleEvent(OpenPort port) {
if (port.isOpen) {
setState(() {
_openPorts.add(port);
});
}
void _handleEvent(ActiveHost? host) {
setState(() {
_openPorts.addAll(host!.openPort);
});
}

void _handleOnDone() {
Expand All @@ -70,7 +69,7 @@ class _PortScanPageState extends State<PortScanPage>
if (_completed && _openPorts.isEmpty) _showSnackBar('No open ports found');
}

StreamSubscription<OpenPort>? _streamSubscription;
StreamSubscription<ActiveHost>? _streamSubscription;
bool _completed = true;
void _startScanning() {
setState(() {
Expand All @@ -92,7 +91,8 @@ class _PortScanPageState extends State<PortScanPage>
progressCallback: _handleProgress,
).listen(_handleEvent, onDone: _handleOnDone);
} else {
_streamSubscription = PortScanner.discover(
//TODO: uncomment
_streamSubscription = PortScanner.scanPortsForSingleDevice(
_targetIPEditingController.text,
startPort: int.parse(_startPortEditingController.text),
endPort: int.parse(_endPortEditingController.text),
Expand Down
17 changes: 17 additions & 0 deletions lib/pages/ping_page/bloc/ping_bloc.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';

part 'ping_event.dart';
part 'ping_state.dart';
part 'ping_bloc.freezed.dart';

class PingBloc extends Bloc<PingEvent, PingState> {
PingBloc() : super(PingState.initial()) {
on<StartPing>(_startPing);
on<StopPing>(_stopPing);
}

_startPing(StartPing event, Emitter<PingState> emit) {}

_stopPing(StopPing event, Emitter<PingState> emit) {}
}
7 changes: 7 additions & 0 deletions lib/pages/ping_page/bloc/ping_event.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
part of 'ping_bloc.dart';

@freezed
class PingEvent with _$PingEvent {
const factory PingEvent.startPing() = StartPing;
const factory PingEvent.stopPing() = StopPing;
}
9 changes: 9 additions & 0 deletions lib/pages/ping_page/bloc/ping_state.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
part of 'ping_bloc.dart';

@freezed
class PingState with _$PingState {
const factory PingState.initial() = _Initial;
const factory PingState.pingRunning() = _PingRunning;
const factory PingState.pingStopped() = _PingStopped;
const factory PingState.pingCompleted() = _PingCompleted;
}
File renamed without changes.
30 changes: 30 additions & 0 deletions lib/pages/port_scan_page/port_scan_bloc/port_scan_bloc.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:injectable/injectable.dart';
import 'package:network_tools/network_tools.dart';

part 'port_scan_bloc.freezed.dart';
part 'port_scan_event.dart';
part 'port_scan_state.dart';

@injectable
class PortScanBloc extends Bloc<PortScanEvent, PortScanState> {
PortScanBloc() : super(PortScanState.initial()) {
on<Initialized>(_initialized);
on<StartNewScan>(_startNewScan);
on<StopScan>(_stopScan);
}

Future<void> _initialized(Initialized event, Emitter<PortScanState> emit) {
emit(const PortScanState.loadInProgress());
return Future.delayed(Duration(microseconds: 1));
}

Future<void> _startNewScan(StartNewScan event, Emitter<PortScanState> emit) {
return Future.delayed(Duration(microseconds: 1));
}

Future<void> _stopScan(StopScan event, Emitter<PortScanState> emit) {
return Future.delayed(Duration(microseconds: 1));
}
}
8 changes: 8 additions & 0 deletions lib/pages/port_scan_page/port_scan_bloc/port_scan_event.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
part of 'port_scan_bloc.dart';

@freezed
class PortScanEvent with _$PortScanEvent {
const factory PortScanEvent.initialized() = Initialized;
const factory PortScanEvent.startNewScan() = StartNewScan;
const factory PortScanEvent.stopScan() = StopScan;
}
12 changes: 12 additions & 0 deletions lib/pages/port_scan_page/port_scan_bloc/port_scan_state.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
part of 'port_scan_bloc.dart';

@freezed
class PortScanState with _$PortScanState {
factory PortScanState.initial() = _Initial;
const factory PortScanState.loadInProgress() = _LoadInProgress;
const factory PortScanState.foundOpenPort(List<OpenPort> openPortList) =
FoundOpenPort;
const factory PortScanState.loadFailure() = _LoadFailure;
const factory PortScanState.noPortFound() = _NoPortFound;
const factory PortScanState.error() = Error;
}
23 changes: 23 additions & 0 deletions lib/pages/port_scan_page/port_scan_page.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import 'package:flutter/material.dart';

class PortScanPage extends StatefulWidget {
final String target;
const PortScanPage({Key? key, this.target = ''}) : super(key: key);

@override
State<PortScanPage> createState() => _PortScanPageState();
}

class _PortScanPageState extends State<PortScanPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Open Port Scanner'),
),
body: Center(
child: Text('Hi'),
),
);
}
}
Loading

0 comments on commit 1a50a40

Please sign in to comment.