~emersion/goguma-dev

This thread contains a patchset. You're looking at the original emails, but you may wish to use the patch review UI. Review patch
1

[PATCH v2] Store bouncer network names locally

Details
Message ID
<20221201153706.23884-1-delthas@dille.cc>
DKIM signature
missing
Download raw message
Patch: +23 -3
---
 lib/client_controller.dart |  6 ++++++
 lib/database.dart          | 13 +++++++++++--
 lib/models.dart            |  7 ++++++-
 3 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/lib/client_controller.dart b/lib/client_controller.dart
index 72f3e4c..9e82ed6 100644
--- a/lib/client_controller.dart
+++ b/lib/client_controller.dart
@@ -764,6 +764,12 @@ class ClientController {
			return;
		}

		if (childNetwork != null && attrs['name'] != null) {
			childNetwork.bouncerName = attrs['name'];
			_db.storeNetwork(childNetwork.networkEntry);
			return;
		}

		if (bouncerNetwork != null) {
			// The bouncer network has been updated
			bouncerNetwork.setAttrs(attrs);
diff --git a/lib/database.dart b/lib/database.dart
index b1eeba1..1f192fa 100644
--- a/lib/database.dart
+++ b/lib/database.dart
@@ -57,6 +57,7 @@ class NetworkEntry {
	int? id;
	final int server;
	String? bouncerId;
	String? bouncerName;
	String? _rawBouncerUri;
	String? _rawIsupport;
	String? _rawCaps;
@@ -70,6 +71,7 @@ class NetworkEntry {
			'id': id,
			'server': server,
			'bouncer_id': bouncerId,
			'bouncer_name': bouncerName,
			'bouncer_uri': _rawBouncerUri,
			'isupport': _rawIsupport,
			'caps': _rawCaps,
@@ -84,6 +86,7 @@ class NetworkEntry {
		id = m['id'] as int,
		server = m['server'] as int,
		bouncerId = m['bouncer_id'] as String?,
		bouncerName = m['bouncer_name'] as String?,
		_rawBouncerUri = m['bouncer_uri'] as String?,
		_rawIsupport = m['isupport'] as String?,
		_rawCaps = m['caps'] as String?;
@@ -336,6 +339,7 @@ class DB {
						id INTEGER PRIMARY KEY,
						server INTEGER NOT NULL,
						bouncer_id TEXT,
						bouncer_name TEXT,
						bouncer_uri TEXT,
						isupport TEXT,
						caps TEXT,
@@ -480,12 +484,17 @@ class DB {
						);
					''');
				}
				if (prevVersion < 14) {
					batch.execute('''
						ALTER TABLE Network ADD COLUMN bouncer_name TEXT;
					''');
				}
				await batch.commit();
			},
			onDowngrade: (_, prevVersion, newVersion) async {
				throw Exception('Attempted to downgrade database from version $prevVersion to version $newVersion');
			},
			version: 13,
			version: 14,
		);
		return DB._(db);
	}
@@ -540,7 +549,7 @@ class DB {

	Future<List<NetworkEntry>> listNetworks() async {
		var entries = await _db.rawQuery('''
			SELECT id, server, bouncer_id, bouncer_uri, isupport, caps
			SELECT id, server, bouncer_id, bouncer_name, bouncer_uri, isupport, caps
			FROM Network ORDER BY id
		''');
		return entries.map((m) => NetworkEntry.fromMap(m)).toList();
diff --git a/lib/models.dart b/lib/models.dart
index 3572b4f..f63dfff 100644
--- a/lib/models.dart
+++ b/lib/models.dart
@@ -75,7 +75,7 @@ class NetworkModel extends ChangeNotifier {

	String get displayName {
		// If the user has set a custom bouncer network name, use that
		var bouncerNetworkName = bouncerNetwork?.name;
		var bouncerNetworkName = networkEntry.bouncerName;
		var bouncerNetworkHost = bouncerNetwork?.host;
		if (bouncerNetworkName != null && bouncerNetworkName != bouncerNetworkHost) {
			return bouncerNetworkName;
@@ -104,6 +104,11 @@ class NetworkModel extends ChangeNotifier {
		notifyListeners();
	}

	set bouncerName(String? bouncerName) {
		networkEntry.bouncerName = bouncerName;
		notifyListeners();
	}

	set nickname(String nickname) {
		_nickname = nickname;
		notifyListeners();

base-commit: 7503ffdc2522b8023cf2b4c4431c344f216b1e58
-- 
2.17.1
Details
Message ID
<rdoRSDydlGw8ZHSpObrNlB2YrMNsn70GfZhRRcYI3mFTgbxNY2gKwmmN8qfbsJNQfOHfWPJz5lVE574FJ-FvJGcr0D3dONkVyvOCfLV1iio=@emersion.fr>
In-Reply-To
<20221201153706.23884-1-delthas@dille.cc> (view parent)
DKIM signature
missing
Download raw message
Pushed with some minor edits, thanks!
Reply to thread Export thread (mbox)