mirror of
https://gitlab.com/mysocialportal/relatica
synced 2024-10-18 12:23:31 +00:00
Merge branch 'main' into bluesky-reshare-update
This commit is contained in:
commit
3e5ae5178a
6 changed files with 60 additions and 19 deletions
16
CHANGELOG.md
16
CHANGELOG.md
|
@ -4,13 +4,23 @@
|
||||||
|
|
||||||
* Changes
|
* Changes
|
||||||
* Use the network data in the friendica extensions rather than the application data if available since the app data
|
* Use the network data in the friendica extensions rather than the application data if available since the app data
|
||||||
is the app name.
|
is the app name. ([Feature #106](https://gitlab.com/mysocialportal/relatica/-/issues/106))
|
||||||
* Fixes
|
* Fixes
|
||||||
|
* Fixes final column of network settings getting chopped off on smaller
|
||||||
|
screens ([Issue #102](https://gitlab.com/mysocialportal/relatica/-/issues/102))
|
||||||
|
* Only circles now appear in the Profile view for adding users to a circle. Previously groups and channels showed up
|
||||||
|
there too which was nonsensical. ([Issue #103](https://gitlab.com/mysocialportal/relatica/-/issues/103))
|
||||||
|
* Fix broken embedded images in message HTML when servers are running block post post-Friendica
|
||||||
|
2024.08.([Issue #105](https://gitlab.com/mysocialportal/relatica/-/issues/105))
|
||||||
|
* Fix broken Diaspora links when using "Copy URL" or "Open in
|
||||||
|
Browser".([Issue #109](https://gitlab.com/mysocialportal/relatica/-/issues/109))
|
||||||
* New Features
|
* New Features
|
||||||
* Focus Mode with ability to set duration and difficulty for unlocking beforehand. Focus mode in this release shows
|
* Focus Mode with ability to set duration and difficulty for unlocking beforehand. Focus mode in this release shows
|
||||||
only the "My Posts" timeline and no bottom navigation bar. So one can't get to search, notifications,
|
only the "My Posts" timeline and no bottom navigation bar. So one can't get to search, notifications,
|
||||||
contacts, etc. One can create new posts, comments, and edits to those things though.
|
contacts, etc. One can create new posts, comments, and edits to those things
|
||||||
* Shows the Circles, Groups, and Channels timelines if connected to a Friendica server running 2024.08 or later.
|
though. ([Feature #95](https://gitlab.com/mysocialportal/relatica/-/issues/95))
|
||||||
|
* Shows the Circles, Groups, and Channels timelines if connected to a Friendica server running 2024.08 or
|
||||||
|
later.([Feature #108](https://gitlab.com/mysocialportal/relatica/-/issues/108))
|
||||||
* Add resharing of Bluesky posts if connected to a Friendica server running 2024.08 or later.
|
* Add resharing of Bluesky posts if connected to a Friendica server running 2024.08 or later.
|
||||||
|
|
||||||
## Version 0.11.0 (beta)
|
## Version 0.11.0 (beta)
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:cached_network_image/cached_network_image.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
|
import 'package:flutter_widget_from_html_core/flutter_widget_from_html_core.dart';
|
||||||
import 'package:html/dom.dart' as dom;
|
import 'package:html/dom.dart' as dom;
|
||||||
|
|
||||||
|
import '../globals.dart';
|
||||||
|
|
||||||
const _emojiSize = {'width': '20px', 'height': '20px', 'margin-left': '-3px'};
|
const _emojiSize = {'width': '20px', 'height': '20px', 'margin-left': '-3px'};
|
||||||
|
|
||||||
class HtmlTextViewerControl extends StatelessWidget {
|
class HtmlTextViewerControl extends StatelessWidget {
|
||||||
|
@ -17,6 +20,7 @@ class HtmlTextViewerControl extends StatelessWidget {
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return HtmlWidget(
|
return HtmlWidget(
|
||||||
content,
|
content,
|
||||||
|
factoryBuilder: () => MyWidgetFactory(),
|
||||||
customStylesBuilder: _defaultStylesBuilder,
|
customStylesBuilder: _defaultStylesBuilder,
|
||||||
onTapUrl: onTapUrl,
|
onTapUrl: onTapUrl,
|
||||||
);
|
);
|
||||||
|
@ -30,3 +34,28 @@ class HtmlTextViewerControl extends StatelessWidget {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class MyWidgetFactory extends WidgetFactory {
|
||||||
|
@override
|
||||||
|
Widget? buildImageWidget(BuildMetadata meta, ImageSource src) {
|
||||||
|
final url = src.url;
|
||||||
|
if (!url.startsWith(RegExp('https?://'))) {
|
||||||
|
return super.buildImageWidget(meta, src);
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, String> headers = {'user-agent': userAgent};
|
||||||
|
|
||||||
|
return CachedNetworkImage(
|
||||||
|
httpHeaders: headers,
|
||||||
|
errorWidget: (context, _, error) =>
|
||||||
|
onErrorBuilder(context, meta, error, src) ?? widget0,
|
||||||
|
fit: BoxFit.fill,
|
||||||
|
imageUrl: url,
|
||||||
|
progressIndicatorBuilder: (context, _, progress) {
|
||||||
|
final t = progress.totalSize;
|
||||||
|
final v = t != null && t > 0 ? progress.downloaded / t : null;
|
||||||
|
return onLoadingBuilder(context, meta, v, src) ?? widget0;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -229,14 +229,20 @@ class NetworkCapabilitiesWidget extends StatelessWidget {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
subtitle: DataTable(
|
subtitle: SingleChildScrollView(
|
||||||
columns: const [
|
scrollDirection: Axis.horizontal,
|
||||||
DataColumn(label: Text('Network')),
|
child: DataTable(
|
||||||
DataColumn(label: Text('React')),
|
columnSpacing: 10.0,
|
||||||
DataColumn(label: Text('Reshare')),
|
columns: const [
|
||||||
DataColumn(label: Text('Comment')),
|
DataColumn(
|
||||||
],
|
label: Text('Network'),
|
||||||
rows: rows,
|
),
|
||||||
|
DataColumn(label: Text('React')),
|
||||||
|
DataColumn(label: Text('Reshare')),
|
||||||
|
DataColumn(label: Text('Comment')),
|
||||||
|
],
|
||||||
|
rows: rows,
|
||||||
|
),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import '../../models/engagement_summary.dart';
|
||||||
import '../../models/link_data.dart';
|
import '../../models/link_data.dart';
|
||||||
import '../../models/location_data.dart';
|
import '../../models/location_data.dart';
|
||||||
import '../../models/timeline_entry.dart';
|
import '../../models/timeline_entry.dart';
|
||||||
import '../../models/timeline_network_info.dart';
|
|
||||||
import '../../models/visibility.dart';
|
import '../../models/visibility.dart';
|
||||||
import '../../services/auth_service.dart';
|
import '../../services/auth_service.dart';
|
||||||
import '../../services/connections_manager.dart';
|
import '../../services/connections_manager.dart';
|
||||||
|
@ -107,10 +106,7 @@ extension TimelineEntryMastodonExtensions on TimelineEntry {
|
||||||
|
|
||||||
const title = '';
|
const title = '';
|
||||||
final spoilerText = json['spoiler_text'] ?? '';
|
final spoilerText = json['spoiler_text'] ?? '';
|
||||||
final externalLink = switch (networkInfo.network) {
|
final externalLink = json['url'];
|
||||||
KnownNetworks.bluesky || KnownNetworks.threads => json['url'] ?? '',
|
|
||||||
_ => json['uri'] ?? '',
|
|
||||||
};
|
|
||||||
const actualLocationData = LocationData();
|
const actualLocationData = LocationData();
|
||||||
|
|
||||||
final modificationTimestamp = timestamp;
|
final modificationTimestamp = timestamp;
|
||||||
|
|
|
@ -556,10 +556,10 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: flutter_widget_from_html_core
|
name: flutter_widget_from_html_core
|
||||||
sha256: df7c7c9e5ea144f7ab0adfbad733b4d4f7d408ab733c94e6e9fdcb327af92aa1
|
sha256: b1048fd119a14762e2361bd057da608148a895477846d6149109b2151d2f7abf
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.15.1"
|
version: "0.15.2"
|
||||||
freezed_annotation:
|
freezed_annotation:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
|
@ -24,7 +24,7 @@ dependencies:
|
||||||
flutter_secure_storage: ^9.2.2
|
flutter_secure_storage: ^9.2.2
|
||||||
flutter_svg: ^2.0.10+1
|
flutter_svg: ^2.0.10+1
|
||||||
flutter_web_auth_2: ^3.1.2
|
flutter_web_auth_2: ^3.1.2
|
||||||
flutter_widget_from_html_core: ^0.15.1
|
flutter_widget_from_html_core: ^0.15.2
|
||||||
get_it: ^7.7.0
|
get_it: ^7.7.0
|
||||||
get_it_mixin: ^4.2.2
|
get_it_mixin: ^4.2.2
|
||||||
go_router: ^14.1.2
|
go_router: ^14.1.2
|
||||||
|
|
Loading…
Reference in a new issue