Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 17 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,24 @@

# :microphone: Resonate - An Open Source Social Voice Platform
</div>
<div align="center">
<div align="center" style="text-align:center;">
<span>
<a href="https://appwrite.io" target="_blank"><img src="https://github.com/appwrite/website/blob/main/static/images/logos/appwrite.svg" alt="Appwrite Logo" width="200"></a>
<img src="https://github.com/ShivamMenda/Resonate/assets/74780977/38823d33-edfb-4d90-9c4b-823cbe33c0a5" alt="Livekit Logo" width="200"></a>
<a href="https://appwrite.io" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" align="center" srcset="https://github.com/appwrite/website/blob/main/static/images/logos/appwrite.svg"
alt="Appwrite Logo" width="200">
<img alt="Appwrite Logo" align="center" src="https://github.com/appwrite/website/blob/main/static/images/logos/appwrite-light.svg" alt="Appwrite Logo"
width="200">
</picture>
</a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="https://livekit.io" target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)" align="center" srcset="https://github.com/AKASHANGADII/Resonate/assets/81625153/87bb173f-d5b0-4386-b9ca-6e69cd53578f" alt="Livekit Logo" width="140" height="30">
<img alt="Livekit Logo" align="center" src="https://github.com/AKASHANGADII/Resonate/assets/81625153/1466de84-d00e-4db7-9b51-a99f3c1997ff" width="140"
height="30">
</picture>
</a>
</span>
</div>
<br>
Expand Down
9 changes: 8 additions & 1 deletion lib/controllers/single_room_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,17 @@ import 'dart:developer';

import 'package:appwrite/appwrite.dart';
import 'package:appwrite/models.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:loading_animation_widget/loading_animation_widget.dart';
import 'package:resonate/controllers/auth_state_controller.dart';
import 'package:resonate/controllers/livekit_controller.dart';
import 'package:resonate/models/appwrite_room.dart';
import 'package:resonate/models/participant.dart';
import 'package:resonate/routes/app_routes.dart';
import 'package:resonate/services/appwrite_service.dart';
import 'package:resonate/services/room_service.dart';
import 'package:resonate/views/widgets/loading_widget.dart';

import '../utils/constants.dart';

Expand Down Expand Up @@ -47,7 +51,7 @@ class SingleRoomController extends GetxController {
void onClose() async {
await subscription?.close();
await Get.delete<LiveKitController>(force: true);
Get.back();
Get.offAllNamed(AppRoutes.tabview);
super.onClose();
}

Expand Down Expand Up @@ -176,13 +180,15 @@ class SingleRoomController extends GetxController {
}

Future<void> leaveRoom() async {
LoadingWidget();
await RoomService.leaveRoom(roomId: appwriteRoom.id);
Get.delete<SingleRoomController>();
}

Future<void> deleteRoom() async {
try {
isLoading.value = true;
LoadingWidget();
await RoomService.deleteRoom(roomId: appwriteRoom.id);
Get.delete<SingleRoomController>();
} catch (e) {
Expand All @@ -192,6 +198,7 @@ class SingleRoomController extends GetxController {
}
}


Future<String> getParticipantDocId(Participant participant) async {
var participantDocsRef = await databases.listDocuments(
databaseId: masterDatabaseId,
Expand Down
15 changes: 11 additions & 4 deletions lib/views/screens/room_screen.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:ffi';

import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart';
Expand All @@ -23,9 +25,14 @@ class _RoomScreenState extends State<RoomScreen> {
super.initState();
}



@override
Widget build(BuildContext context) {
SingleRoomController controller = Get.find<SingleRoomController>();
Future<Void> deleteRoomDialog(String text,Function() onTap) async{
return await Get.defaultDialog(title: "Are you sure?",middleText: "To $text the room",onConfirm: onTap,onCancel: (){print("abc");});
}
return Padding(
padding: EdgeInsets.symmetric(horizontal: UiSizes.width_16),
child: Column(
Expand Down Expand Up @@ -129,10 +136,10 @@ class _RoomScreenState extends State<RoomScreen> {
children: [
InkWell(
onTap: () async {
controller.appwriteRoom.isUserAdmin
? await controller.deleteRoom()
: await controller.leaveRoom();
},
await deleteRoomDialog(controller.appwriteRoom.isUserAdmin
?"delete":"leave", () async=> controller.appwriteRoom.isUserAdmin
?await controller.deleteRoom():await controller.leaveRoom());
},
child: Container(
height: UiSizes.height_40,
width: UiSizes.width_123_4,
Expand Down
13 changes: 13 additions & 0 deletions lib/views/widgets/loading_widget.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:loading_animation_widget/loading_animation_widget.dart';

Future<dynamic> LoadingWidget() {
return Get.dialog(
Center(
child: LoadingAnimationWidget.threeRotatingDots(
color: Colors.amber, size: Get.pixelRatio * 20),
),
barrierDismissible: false,
name: "Loading Dialog");
}