Add check of network capabilities for reshare button

This commit is contained in:
Hank Grabowski 2024-06-26 14:58:02 -04:00
parent 2b347b5572
commit ee2421f691

View file

@ -1,7 +1,9 @@
import 'package:relatica/models/timeline_entry.dart';
import 'package:relatica/models/timeline_network_info.dart';
import '../globals.dart';
import '../models/timeline_entry.dart';
import '../models/timeline_network_info.dart';
import '../models/visibility.dart';
import '../services/setting_service.dart';
import 'known_network_extensions.dart';
enum Reshareable {
no,
@ -24,13 +26,6 @@ extension InteractionAvailabilityExtension on TimelineEntry {
);
}
if (networkInfo.network == KnownNetworks.threads) {
return const ReshareableResult(
isReshareable: Reshareable.no,
reason: "You have requested to not allow resharing of Threads posts.",
);
}
if (networkInfo.network == KnownNetworks.bluesky) {
return const ReshareableResult(
isReshareable: Reshareable.no,
@ -39,6 +34,18 @@ extension InteractionAvailabilityExtension on TimelineEntry {
);
}
final settingsService = getIt<SettingsService>();
final nc = settingsService.networkCapabilities
.getCapabilities(networkInfo.network);
if (!nc.reshare) {
return ReshareableResult(
isReshareable: Reshareable.no,
reason:
"User disabled resharing ${networkInfo.network.labelName}. Go into settings to change.",
);
}
if (visibility.type == VisibilityType.public ||
visibility.type == VisibilityType.unlisted) {
return const ReshareableResult(