Skip to content

Commit

Permalink
add limits to shockers on add, open share link edit page when created
Browse files Browse the repository at this point in the history
  • Loading branch information
ComputerElite committed Jan 31, 2025
1 parent ae0cd5a commit 94e702c
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 10 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ Furthermore it fixes some layout flaws of the official OpenShock Frontend like h
- [x] Random intensity and duration
- [x] Safety warning
- [x] Share link management
- [x] Allow setting initial limits when adding a shocker
- [ ] Add ui to rename tones
- [ ] save last opened tab (and load it on start)
- [ ] Random shocking (specify random delay between shocks, min and max intensity/duration)
Expand Down
12 changes: 11 additions & 1 deletion lib/screens/share_link_edit.dart
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ class ShareLinkEditScreenState extends State<ShareLinkEditScreen> {
List<String> existingShockers = shareLink!.shockers.map((e) => e.id).toList();
List<Shocker> ownShockers = await AlarmListManager.getInstance().shockers.where((element) => element.isOwn && !existingShockers.contains(element.id)).toList();
Shocker? selectedShocker = null;
OpenShockShareLimits limits = OpenShockShareLimits();

if(ownShockers.length <= 0) {
showDialog(context: context, builder: (context) => AlertDialog(title: Text("All done"), content: Text("You have already added all your shockers to this share link."), actions: [TextButton(onPressed: () {
Expand All @@ -65,6 +66,7 @@ class ShareLinkEditScreenState extends State<ShareLinkEditScreen> {
selectedShocker = value;
});
}),
ShockerShareEntryEditor(limits: limits),
],
),
actions: [
Expand All @@ -81,9 +83,17 @@ class ShareLinkEditScreenState extends State<ShareLinkEditScreen> {
showDialog(context: context, builder: (context) => LoadingDialog(title: "Adding shocker"));

String? error = await AlarmListManager.getInstance().addShockerToShareLink(selectedShocker, shareLink!);
if(error != null) {
Navigator.of(context).pop();
showDialog(context: context, builder: (context) => AlertDialog(title: Text("Error"), content: Text(error!), actions: [TextButton(onPressed: () {
Navigator.of(context).pop();
}, child: Text("Ok"))],));
return;
}
error = await OpenShockClient().setLimitsOfShareLinkShocker(shareLink!, selectedShocker!, limits);
Navigator.of(context).pop();
if(error != null) {
showDialog(context: context, builder: (context) => AlertDialog(title: Text("Error"), content: Text(error), actions: [TextButton(onPressed: () {
showDialog(context: context, builder: (context) => AlertDialog(title: Text("Error"), content: Text(error!), actions: [TextButton(onPressed: () {
Navigator.of(context).pop();
}, child: Text("Ok"))],));
return;
Expand Down
7 changes: 4 additions & 3 deletions lib/screens/share_links.dart
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,13 @@ class ShareLinkCreationDialogState extends State<ShareLinkCreationDialog> {
}

showDialog(context: context, builder: (context) => LoadingDialog(title: "Creating Share Link"));
String? error = await AlarmListManager.getInstance().createShareLink(widget.shareLinkName, widget.expiresOn!);
if(error != null) {
PairCode error = await AlarmListManager.getInstance().createShareLink(widget.shareLinkName, widget.expiresOn!);
if(error.error != null) {
Navigator.of(context).pop();
showDialog(context: context, builder: (context) {
return AlertDialog(
title: Text("Error creating share link"),
content: Text(error),
content: Text(error.error!),
actions: [
TextButton(onPressed: () {
Navigator.of(context).pop();
Expand All @@ -103,6 +103,7 @@ class ShareLinkCreationDialogState extends State<ShareLinkCreationDialog> {
}
Navigator.of(context).pop();
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(builder: (context) => ShareLinkEditScreen(shareLink: OpenShockShareLink.fromId(error.code!, widget.shareLinkName, AlarmListManager.getInstance().getAnyUserToken()))));
AlarmListManager.getInstance().reloadShareLinksMethod!();
},
child: Text("Create")),
Expand Down
4 changes: 2 additions & 2 deletions lib/services/alarm_list_manager.dart
Original file line number Diff line number Diff line change
Expand Up @@ -563,10 +563,10 @@ class AlarmListManager {
return client.addShockerToShareLink(selectedShocker!, openShockShareLink);
}

Future<String?> createShareLink(String shareLinkName, DateTime dateTime) async {
Future<PairCode> createShareLink(String shareLinkName, DateTime dateTime) async {
OpenShockClient client = OpenShockClient();
Token? token = getAnyUserToken();
if(token == null) return "No token found";
if(token == null) return PairCode("No token found", null);
return client.createShareLink(token, shareLinkName, dateTime);
}

Expand Down
10 changes: 6 additions & 4 deletions lib/services/openshock.dart
Original file line number Diff line number Diff line change
Expand Up @@ -537,15 +537,15 @@ class OpenShockClient {
return getErrorCode(response, "Failed to update shocker limits");
}

Future<String?> createShareLink(Token t, String shareLinkName, DateTime dateTime) async {
Future<PairCode> createShareLink(Token t, String shareLinkName, DateTime dateTime) async {
var response = await PostRequest(t, "/1/shares/links", jsonEncode({
"name": shareLinkName,
"expiresOn": dateTime.toIso8601String()
}));
if(response.statusCode == 200) {
return null;
return PairCode(null, jsonDecode(response.body)['data']);
}
return getErrorCode(response, "Failed to create share link");
return PairCode(getErrorCode(response, "Failed to create share link"), null);
}

Future<String?> deleteShareLink(OpenShockShareLink shareLink) async {
Expand All @@ -568,6 +568,9 @@ class OpenShockShareLink {
List<Shocker> shockers = [];
Token? tokenReference;

OpenShockShareLink();
OpenShockShareLink.fromId(this.id, this.name, this.tokenReference);

String getLink() {
String host = "https://openshock.app";
if(tokenReference != null) {
Expand Down Expand Up @@ -611,7 +614,6 @@ class CreatedHub {

CreatedHub(this.hubId, this.error);
}

class PairCode {
String? code;
String? error;
Expand Down

0 comments on commit 94e702c

Please sign in to comment.