Limit scheduled messages & unsend to newer server versions

This commit is contained in:
Tanay Neotia
2022-12-20 12:34:15 -05:00
parent 23351ad993
commit cde5e41493
3 changed files with 30 additions and 25 deletions

View File

@ -275,7 +275,7 @@ class _MessagePopupState extends OptimizedState<MessagePopup> with SingleTickerP
style: context.textTheme.bodyLarge!.apply(color: context.theme.colorScheme.properOnSurface),
),
),
if (ss.isMinVenturaSync && message.isFromMe!)
if (ss.isMinVenturaSync && message.isFromMe! && ss.serverDetailsSync().item4 >= 148)
PopupMenuItem(
value: 6,
child: Text(
@ -1118,7 +1118,7 @@ class _MessagePopupState extends OptimizedState<MessagePopup> with SingleTickerP
),
),
),
if (ss.isMinVenturaSync && message.isFromMe!)
if (ss.isMinVenturaSync && message.isFromMe! && ss.serverDetailsSync().item4 >= 148)
Material(
color: Colors.transparent,
child: InkWell(

View File

@ -181,31 +181,33 @@ class _SettingsPageState extends OptimizedState<SettingsPage> {
trailing: nextIcon,
);
}),
Container(
color: tileColor,
child: Padding(
padding: const EdgeInsets.only(left: 65.0),
child: SettingsDivider(color: context.theme.colorScheme.surfaceVariant),
if (ss.serverDetailsSync().item4 >= 205)
Container(
color: tileColor,
child: Padding(
padding: const EdgeInsets.only(left: 65.0),
child: SettingsDivider(color: context.theme.colorScheme.surfaceVariant),
),
),
),
SettingsTile(
backgroundColor: tileColor,
title: "Scheduled Messages",
subtitle: "Schedule your server to send a message in the future or at set intervals",
isThreeLine: true,
onTap: () {
ns.pushAndRemoveSettingsUntil(
context,
ScheduledMessagesPanel(),
(route) => route.isFirst,
);
},
trailing: nextIcon,
leading: const SettingsLeadingIcon(
iosIcon: CupertinoIcons.calendar_today,
materialIcon: Icons.schedule_send_outlined,
if (ss.serverDetailsSync().item4 >= 205)
SettingsTile(
backgroundColor: tileColor,
title: "Scheduled Messages",
subtitle: "Schedule your server to send a message in the future or at set intervals",
isThreeLine: true,
onTap: () {
ns.pushAndRemoveSettingsUntil(
context,
ScheduledMessagesPanel(),
(route) => route.isFirst,
);
},
trailing: nextIcon,
leading: const SettingsLeadingIcon(
iosIcon: CupertinoIcons.calendar_today,
materialIcon: Icons.schedule_send_outlined,
),
),
),
],
),
SettingsHeader(

View File

@ -103,6 +103,9 @@ class SettingsService extends GetxService {
}
}
Tuple4<int, int, String, int> serverDetailsSync() =>
Tuple4(prefs.getInt("macos-version") ?? 11, prefs.getInt("macos-minor-version") ?? 0, prefs.getString("server-version") ?? "0.0.0", prefs.getInt("server-version-code") ?? 0);
Future<bool> get isMinSierra async {
final val = await getServerDetails();
return val.item1 > 10 || (val.item1 == 10 && val.item2 > 11);