wifi connection established by app, process socket binding, primary os connection untouched
This commit is contained in:
@@ -78,6 +78,12 @@ class AppSettingsTable extends Table {
|
||||
IntColumn get connectionWifiPort =>
|
||||
integer().withDefault(const Constant(kDefaultWifiPort))();
|
||||
|
||||
/// SSID-Praefix fuer den app-initiierten WLAN-Verbindungsaufbau per
|
||||
/// `WifiNetworkSpecifier` (Doku Kommunikationsschicht v2 Abschnitt 4/8),
|
||||
/// Standard "mLRS-", ueberschreibbar.
|
||||
TextColumn get connectionWifiSsidPrefix =>
|
||||
text().withDefault(const Constant(kDefaultWifiSsidPrefix))();
|
||||
|
||||
@override
|
||||
Set<Column> get primaryKey => {id};
|
||||
}
|
||||
@@ -89,7 +95,7 @@ class AppDatabase extends _$AppDatabase {
|
||||
AppDatabase.forTesting(super.executor);
|
||||
|
||||
@override
|
||||
int get schemaVersion => 4;
|
||||
int get schemaVersion => 5;
|
||||
|
||||
@override
|
||||
MigrationStrategy get migration => MigrationStrategy(
|
||||
@@ -121,6 +127,12 @@ class AppDatabase extends _$AppDatabase {
|
||||
appSettingsTable.connectionWifiPort,
|
||||
);
|
||||
}
|
||||
if (from < 5) {
|
||||
await m.addColumn(
|
||||
appSettingsTable,
|
||||
appSettingsTable.connectionWifiSsidPrefix,
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
|
||||
@@ -1358,7 +1358,7 @@ class $AppSettingsTableTable extends AppSettingsTable
|
||||
false,
|
||||
type: DriftSqlType.string,
|
||||
requiredDuringInsert: false,
|
||||
defaultValue: const Constant('bluetooth'),
|
||||
defaultValue: const Constant('wifi'),
|
||||
);
|
||||
static const VerificationMeta _connectionWifiHostMeta =
|
||||
const VerificationMeta('connectionWifiHost');
|
||||
@@ -1382,6 +1382,18 @@ class $AppSettingsTableTable extends AppSettingsTable
|
||||
requiredDuringInsert: false,
|
||||
defaultValue: const Constant(kDefaultWifiPort),
|
||||
);
|
||||
static const VerificationMeta _connectionWifiSsidPrefixMeta =
|
||||
const VerificationMeta('connectionWifiSsidPrefix');
|
||||
@override
|
||||
late final GeneratedColumn<String> connectionWifiSsidPrefix =
|
||||
GeneratedColumn<String>(
|
||||
'connection_wifi_ssid_prefix',
|
||||
aliasedName,
|
||||
false,
|
||||
type: DriftSqlType.string,
|
||||
requiredDuringInsert: false,
|
||||
defaultValue: const Constant(kDefaultWifiSsidPrefix),
|
||||
);
|
||||
@override
|
||||
List<GeneratedColumn> get $columns => [
|
||||
id,
|
||||
@@ -1392,6 +1404,7 @@ class $AppSettingsTableTable extends AppSettingsTable
|
||||
connectionType,
|
||||
connectionWifiHost,
|
||||
connectionWifiPort,
|
||||
connectionWifiSsidPrefix,
|
||||
];
|
||||
@override
|
||||
String get aliasedName => _alias ?? actualTableName;
|
||||
@@ -1471,6 +1484,15 @@ class $AppSettingsTableTable extends AppSettingsTable
|
||||
),
|
||||
);
|
||||
}
|
||||
if (data.containsKey('connection_wifi_ssid_prefix')) {
|
||||
context.handle(
|
||||
_connectionWifiSsidPrefixMeta,
|
||||
connectionWifiSsidPrefix.isAcceptableOrUnknown(
|
||||
data['connection_wifi_ssid_prefix']!,
|
||||
_connectionWifiSsidPrefixMeta,
|
||||
),
|
||||
);
|
||||
}
|
||||
return context;
|
||||
}
|
||||
|
||||
@@ -1512,6 +1534,10 @@ class $AppSettingsTableTable extends AppSettingsTable
|
||||
DriftSqlType.int,
|
||||
data['${effectivePrefix}connection_wifi_port'],
|
||||
)!,
|
||||
connectionWifiSsidPrefix: attachedDatabase.typeMapping.read(
|
||||
DriftSqlType.string,
|
||||
data['${effectivePrefix}connection_wifi_ssid_prefix'],
|
||||
)!,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1536,8 +1562,8 @@ class AppSettingsTableData extends DataClass
|
||||
final bool connectionAutoConnect;
|
||||
|
||||
/// Gewaehlte Verbindungsart (Doku 7: "Art: WLAN * USB (spaeter)"),
|
||||
/// gespeichert als [ConnectionType.name]. Standard bleibt Bluetooth, damit
|
||||
/// bestehende Installationen ihr bisheriges Verhalten behalten.
|
||||
/// gespeichert als [ConnectionType.name]. App-Default ist WLAN; die
|
||||
/// Nutzerauswahl wird danach dauerhaft gemerkt.
|
||||
final String connectionType;
|
||||
|
||||
/// Vom Nutzer eingetragene Ziel-IP der mLRS-WLAN-Bruecke (Doku 3:
|
||||
@@ -1547,6 +1573,11 @@ class AppSettingsTableData extends DataClass
|
||||
|
||||
/// Lokaler UDP-Port fuer die mLRS-WLAN-Bruecke (Doku 3), Standard 14550.
|
||||
final int connectionWifiPort;
|
||||
|
||||
/// SSID-Praefix fuer den app-initiierten WLAN-Verbindungsaufbau per
|
||||
/// `WifiNetworkSpecifier` (Doku Kommunikationsschicht v2 Abschnitt 4/8),
|
||||
/// Standard "mLRS-", ueberschreibbar.
|
||||
final String connectionWifiSsidPrefix;
|
||||
const AppSettingsTableData({
|
||||
required this.id,
|
||||
this.activeDroneProfileId,
|
||||
@@ -1556,6 +1587,7 @@ class AppSettingsTableData extends DataClass
|
||||
required this.connectionType,
|
||||
this.connectionWifiHost,
|
||||
required this.connectionWifiPort,
|
||||
required this.connectionWifiSsidPrefix,
|
||||
});
|
||||
@override
|
||||
Map<String, Expression> toColumns(bool nullToAbsent) {
|
||||
@@ -1578,6 +1610,9 @@ class AppSettingsTableData extends DataClass
|
||||
map['connection_wifi_host'] = Variable<String>(connectionWifiHost);
|
||||
}
|
||||
map['connection_wifi_port'] = Variable<int>(connectionWifiPort);
|
||||
map['connection_wifi_ssid_prefix'] = Variable<String>(
|
||||
connectionWifiSsidPrefix,
|
||||
);
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -1599,6 +1634,7 @@ class AppSettingsTableData extends DataClass
|
||||
? const Value.absent()
|
||||
: Value(connectionWifiHost),
|
||||
connectionWifiPort: Value(connectionWifiPort),
|
||||
connectionWifiSsidPrefix: Value(connectionWifiSsidPrefix),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1624,6 +1660,9 @@ class AppSettingsTableData extends DataClass
|
||||
json['connectionWifiHost'],
|
||||
),
|
||||
connectionWifiPort: serializer.fromJson<int>(json['connectionWifiPort']),
|
||||
connectionWifiSsidPrefix: serializer.fromJson<String>(
|
||||
json['connectionWifiSsidPrefix'],
|
||||
),
|
||||
);
|
||||
}
|
||||
@override
|
||||
@@ -1640,6 +1679,9 @@ class AppSettingsTableData extends DataClass
|
||||
'connectionType': serializer.toJson<String>(connectionType),
|
||||
'connectionWifiHost': serializer.toJson<String?>(connectionWifiHost),
|
||||
'connectionWifiPort': serializer.toJson<int>(connectionWifiPort),
|
||||
'connectionWifiSsidPrefix': serializer.toJson<String>(
|
||||
connectionWifiSsidPrefix,
|
||||
),
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1652,6 +1694,7 @@ class AppSettingsTableData extends DataClass
|
||||
String? connectionType,
|
||||
Value<String?> connectionWifiHost = const Value.absent(),
|
||||
int? connectionWifiPort,
|
||||
String? connectionWifiSsidPrefix,
|
||||
}) => AppSettingsTableData(
|
||||
id: id ?? this.id,
|
||||
activeDroneProfileId: activeDroneProfileId.present
|
||||
@@ -1669,6 +1712,8 @@ class AppSettingsTableData extends DataClass
|
||||
? connectionWifiHost.value
|
||||
: this.connectionWifiHost,
|
||||
connectionWifiPort: connectionWifiPort ?? this.connectionWifiPort,
|
||||
connectionWifiSsidPrefix:
|
||||
connectionWifiSsidPrefix ?? this.connectionWifiSsidPrefix,
|
||||
);
|
||||
AppSettingsTableData copyWithCompanion(AppSettingsTableCompanion data) {
|
||||
return AppSettingsTableData(
|
||||
@@ -1694,6 +1739,9 @@ class AppSettingsTableData extends DataClass
|
||||
connectionWifiPort: data.connectionWifiPort.present
|
||||
? data.connectionWifiPort.value
|
||||
: this.connectionWifiPort,
|
||||
connectionWifiSsidPrefix: data.connectionWifiSsidPrefix.present
|
||||
? data.connectionWifiSsidPrefix.value
|
||||
: this.connectionWifiSsidPrefix,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1707,7 +1755,8 @@ class AppSettingsTableData extends DataClass
|
||||
..write('connectionAutoConnect: $connectionAutoConnect, ')
|
||||
..write('connectionType: $connectionType, ')
|
||||
..write('connectionWifiHost: $connectionWifiHost, ')
|
||||
..write('connectionWifiPort: $connectionWifiPort')
|
||||
..write('connectionWifiPort: $connectionWifiPort, ')
|
||||
..write('connectionWifiSsidPrefix: $connectionWifiSsidPrefix')
|
||||
..write(')'))
|
||||
.toString();
|
||||
}
|
||||
@@ -1722,6 +1771,7 @@ class AppSettingsTableData extends DataClass
|
||||
connectionType,
|
||||
connectionWifiHost,
|
||||
connectionWifiPort,
|
||||
connectionWifiSsidPrefix,
|
||||
);
|
||||
@override
|
||||
bool operator ==(Object other) =>
|
||||
@@ -1734,7 +1784,8 @@ class AppSettingsTableData extends DataClass
|
||||
other.connectionAutoConnect == this.connectionAutoConnect &&
|
||||
other.connectionType == this.connectionType &&
|
||||
other.connectionWifiHost == this.connectionWifiHost &&
|
||||
other.connectionWifiPort == this.connectionWifiPort);
|
||||
other.connectionWifiPort == this.connectionWifiPort &&
|
||||
other.connectionWifiSsidPrefix == this.connectionWifiSsidPrefix);
|
||||
}
|
||||
|
||||
class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
@@ -1746,6 +1797,7 @@ class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
final Value<String> connectionType;
|
||||
final Value<String?> connectionWifiHost;
|
||||
final Value<int> connectionWifiPort;
|
||||
final Value<String> connectionWifiSsidPrefix;
|
||||
const AppSettingsTableCompanion({
|
||||
this.id = const Value.absent(),
|
||||
this.activeDroneProfileId = const Value.absent(),
|
||||
@@ -1755,6 +1807,7 @@ class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
this.connectionType = const Value.absent(),
|
||||
this.connectionWifiHost = const Value.absent(),
|
||||
this.connectionWifiPort = const Value.absent(),
|
||||
this.connectionWifiSsidPrefix = const Value.absent(),
|
||||
});
|
||||
AppSettingsTableCompanion.insert({
|
||||
this.id = const Value.absent(),
|
||||
@@ -1765,6 +1818,7 @@ class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
this.connectionType = const Value.absent(),
|
||||
this.connectionWifiHost = const Value.absent(),
|
||||
this.connectionWifiPort = const Value.absent(),
|
||||
this.connectionWifiSsidPrefix = const Value.absent(),
|
||||
});
|
||||
static Insertable<AppSettingsTableData> custom({
|
||||
Expression<int>? id,
|
||||
@@ -1775,6 +1829,7 @@ class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
Expression<String>? connectionType,
|
||||
Expression<String>? connectionWifiHost,
|
||||
Expression<int>? connectionWifiPort,
|
||||
Expression<String>? connectionWifiSsidPrefix,
|
||||
}) {
|
||||
return RawValuesInsertable({
|
||||
if (id != null) 'id': id,
|
||||
@@ -1790,6 +1845,8 @@ class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
'connection_wifi_host': connectionWifiHost,
|
||||
if (connectionWifiPort != null)
|
||||
'connection_wifi_port': connectionWifiPort,
|
||||
if (connectionWifiSsidPrefix != null)
|
||||
'connection_wifi_ssid_prefix': connectionWifiSsidPrefix,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1802,6 +1859,7 @@ class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
Value<String>? connectionType,
|
||||
Value<String?>? connectionWifiHost,
|
||||
Value<int>? connectionWifiPort,
|
||||
Value<String>? connectionWifiSsidPrefix,
|
||||
}) {
|
||||
return AppSettingsTableCompanion(
|
||||
id: id ?? this.id,
|
||||
@@ -1814,6 +1872,8 @@ class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
connectionType: connectionType ?? this.connectionType,
|
||||
connectionWifiHost: connectionWifiHost ?? this.connectionWifiHost,
|
||||
connectionWifiPort: connectionWifiPort ?? this.connectionWifiPort,
|
||||
connectionWifiSsidPrefix:
|
||||
connectionWifiSsidPrefix ?? this.connectionWifiSsidPrefix,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1850,6 +1910,11 @@ class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
if (connectionWifiPort.present) {
|
||||
map['connection_wifi_port'] = Variable<int>(connectionWifiPort.value);
|
||||
}
|
||||
if (connectionWifiSsidPrefix.present) {
|
||||
map['connection_wifi_ssid_prefix'] = Variable<String>(
|
||||
connectionWifiSsidPrefix.value,
|
||||
);
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -1863,7 +1928,8 @@ class AppSettingsTableCompanion extends UpdateCompanion<AppSettingsTableData> {
|
||||
..write('connectionAutoConnect: $connectionAutoConnect, ')
|
||||
..write('connectionType: $connectionType, ')
|
||||
..write('connectionWifiHost: $connectionWifiHost, ')
|
||||
..write('connectionWifiPort: $connectionWifiPort')
|
||||
..write('connectionWifiPort: $connectionWifiPort, ')
|
||||
..write('connectionWifiSsidPrefix: $connectionWifiSsidPrefix')
|
||||
..write(')'))
|
||||
.toString();
|
||||
}
|
||||
@@ -2507,6 +2573,7 @@ typedef $$AppSettingsTableTableCreateCompanionBuilder =
|
||||
Value<String> connectionType,
|
||||
Value<String?> connectionWifiHost,
|
||||
Value<int> connectionWifiPort,
|
||||
Value<String> connectionWifiSsidPrefix,
|
||||
});
|
||||
typedef $$AppSettingsTableTableUpdateCompanionBuilder =
|
||||
AppSettingsTableCompanion Function({
|
||||
@@ -2518,6 +2585,7 @@ typedef $$AppSettingsTableTableUpdateCompanionBuilder =
|
||||
Value<String> connectionType,
|
||||
Value<String?> connectionWifiHost,
|
||||
Value<int> connectionWifiPort,
|
||||
Value<String> connectionWifiSsidPrefix,
|
||||
});
|
||||
|
||||
class $$AppSettingsTableTableFilterComposer
|
||||
@@ -2568,6 +2636,11 @@ class $$AppSettingsTableTableFilterComposer
|
||||
column: $table.connectionWifiPort,
|
||||
builder: (column) => ColumnFilters(column),
|
||||
);
|
||||
|
||||
ColumnFilters<String> get connectionWifiSsidPrefix => $composableBuilder(
|
||||
column: $table.connectionWifiSsidPrefix,
|
||||
builder: (column) => ColumnFilters(column),
|
||||
);
|
||||
}
|
||||
|
||||
class $$AppSettingsTableTableOrderingComposer
|
||||
@@ -2618,6 +2691,11 @@ class $$AppSettingsTableTableOrderingComposer
|
||||
column: $table.connectionWifiPort,
|
||||
builder: (column) => ColumnOrderings(column),
|
||||
);
|
||||
|
||||
ColumnOrderings<String> get connectionWifiSsidPrefix => $composableBuilder(
|
||||
column: $table.connectionWifiSsidPrefix,
|
||||
builder: (column) => ColumnOrderings(column),
|
||||
);
|
||||
}
|
||||
|
||||
class $$AppSettingsTableTableAnnotationComposer
|
||||
@@ -2666,6 +2744,11 @@ class $$AppSettingsTableTableAnnotationComposer
|
||||
column: $table.connectionWifiPort,
|
||||
builder: (column) => column,
|
||||
);
|
||||
|
||||
GeneratedColumn<String> get connectionWifiSsidPrefix => $composableBuilder(
|
||||
column: $table.connectionWifiSsidPrefix,
|
||||
builder: (column) => column,
|
||||
);
|
||||
}
|
||||
|
||||
class $$AppSettingsTableTableTableManager
|
||||
@@ -2713,6 +2796,7 @@ class $$AppSettingsTableTableTableManager
|
||||
Value<String> connectionType = const Value.absent(),
|
||||
Value<String?> connectionWifiHost = const Value.absent(),
|
||||
Value<int> connectionWifiPort = const Value.absent(),
|
||||
Value<String> connectionWifiSsidPrefix = const Value.absent(),
|
||||
}) => AppSettingsTableCompanion(
|
||||
id: id,
|
||||
activeDroneProfileId: activeDroneProfileId,
|
||||
@@ -2722,6 +2806,7 @@ class $$AppSettingsTableTableTableManager
|
||||
connectionType: connectionType,
|
||||
connectionWifiHost: connectionWifiHost,
|
||||
connectionWifiPort: connectionWifiPort,
|
||||
connectionWifiSsidPrefix: connectionWifiSsidPrefix,
|
||||
),
|
||||
createCompanionCallback:
|
||||
({
|
||||
@@ -2733,6 +2818,7 @@ class $$AppSettingsTableTableTableManager
|
||||
Value<String> connectionType = const Value.absent(),
|
||||
Value<String?> connectionWifiHost = const Value.absent(),
|
||||
Value<int> connectionWifiPort = const Value.absent(),
|
||||
Value<String> connectionWifiSsidPrefix = const Value.absent(),
|
||||
}) => AppSettingsTableCompanion.insert(
|
||||
id: id,
|
||||
activeDroneProfileId: activeDroneProfileId,
|
||||
@@ -2742,6 +2828,7 @@ class $$AppSettingsTableTableTableManager
|
||||
connectionType: connectionType,
|
||||
connectionWifiHost: connectionWifiHost,
|
||||
connectionWifiPort: connectionWifiPort,
|
||||
connectionWifiSsidPrefix: connectionWifiSsidPrefix,
|
||||
),
|
||||
withReferenceMapper: (p0) => p0
|
||||
.map((e) => (e.readTable(table), BaseReferences(db, table, e)))
|
||||
|
||||
@@ -22,6 +22,7 @@ class AppSettingsRepository {
|
||||
ConnectionType connectionType,
|
||||
String? connectionWifiHost,
|
||||
int connectionWifiPort,
|
||||
String connectionWifiSsidPrefix,
|
||||
})> load() async {
|
||||
final row = await (_db.select(_db.appSettingsTable)
|
||||
..where((s) => s.id.equals(_rowId)))
|
||||
@@ -37,6 +38,8 @@ class AppSettingsRepository {
|
||||
),
|
||||
connectionWifiHost: row?.connectionWifiHost,
|
||||
connectionWifiPort: row?.connectionWifiPort ?? kDefaultWifiPort,
|
||||
connectionWifiSsidPrefix:
|
||||
row?.connectionWifiSsidPrefix ?? kDefaultWifiSsidPrefix,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -104,6 +107,18 @@ class AppSettingsRepository {
|
||||
));
|
||||
}
|
||||
|
||||
/// SSID-Praefix fuer den app-initiierten WLAN-Verbindungsaufbau (Doku
|
||||
/// Kommunikationsschicht v2 Abschnitt 4/8), Standard "mLRS-".
|
||||
Future<String> loadConnectionWifiSsidPrefix() async =>
|
||||
(await load()).connectionWifiSsidPrefix;
|
||||
|
||||
Future<void> setConnectionWifiSsidPrefix(String prefix) async {
|
||||
await _upsert(AppSettingsTableCompanion(
|
||||
id: const Value(_rowId),
|
||||
connectionWifiSsidPrefix: Value(prefix),
|
||||
));
|
||||
}
|
||||
|
||||
Future<void> _upsert(AppSettingsTableCompanion companion) async {
|
||||
await _db.into(_db.appSettingsTable).insertOnConflictUpdate(companion);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user