From 7163e46cb390974eee4920fe49b1bba71e49f553 Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Tue, 25 Jul 2023 16:46:47 +0300
Subject: [PATCH] Create new navigator

---
 .../feature/timeline/TimelineNavigator.kt     | 35 ++------------
 .../options/TimelineOptionsNavigator.kt       | 46 +++++++++++++++++++
 2 files changed, 50 insertions(+), 31 deletions(-)
 create mode 100644 app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsNavigator.kt

diff --git a/app/src/main/java/org/futo/circles/feature/timeline/TimelineNavigator.kt b/app/src/main/java/org/futo/circles/feature/timeline/TimelineNavigator.kt
index 28f9db111..7705744fc 100644
--- a/app/src/main/java/org/futo/circles/feature/timeline/TimelineNavigator.kt
+++ b/app/src/main/java/org/futo/circles/feature/timeline/TimelineNavigator.kt
@@ -16,46 +16,24 @@ class TimelineNavigator(private val fragment: TimelineDialogFragment) {
         )
     }
 
-    fun navigateToCreatePoll(roomId: String, eventId: String? = null) {
+    fun navigateToTimelineOptions(roomId: String, type: CircleRoomTypeArg) {
         fragment.findNavController().navigateSafe(
-            TimelineDialogFragmentDirections.toCreatePoll(roomId, eventId)
+            TimelineDialogFragmentDirections.toTimelineOptions(roomId, type)
         )
     }
 
-    fun navigateToInviteMembers(timelineId: String) {
-        fragment.findNavController().navigateSafe(
-            TimelineDialogFragmentDirections.toInviteMembersDialogFragment(timelineId)
-        )
-    }
-
-    fun navigateToUpdateRoom(roomId: String, type: CircleRoomTypeArg) {
-        val destination = if (type == CircleRoomTypeArg.Circle)
-            TimelineDialogFragmentDirections.toUpdateCircleDialogFragment(roomId)
-        else TimelineDialogFragmentDirections.toUpdateGroupDialogFragment(roomId)
-        fragment.findNavController().navigateSafe(destination)
-    }
-
-    fun navigateToManageMembers(timelineId: String, type: CircleRoomTypeArg) {
+    fun navigateToCreatePoll(roomId: String, eventId: String? = null) {
         fragment.findNavController().navigateSafe(
-            TimelineDialogFragmentDirections.toManageMembersDialogFragment(timelineId, type)
+            TimelineDialogFragmentDirections.toCreatePoll(roomId, eventId)
         )
     }
 
-    fun navigateToFollowing(roomId: String) {
-        fragment.findNavController().navigateSafe(
-            TimelineDialogFragmentDirections.toFollowingDialogFragment(roomId)
-        )
-    }
 
     fun navigateToInfo(roomId: String, eventId: String) {
         fragment.findNavController()
             .navigateSafe(TimelineDialogFragmentDirections.toPostInfo(roomId, eventId))
     }
 
-    fun navigateToStateEvents(roomId: String) {
-        fragment.findNavController()
-            .navigateSafe(TimelineDialogFragmentDirections.toStateEvents(roomId))
-    }
 
     fun navigateToSaveToGallery(roomId: String, eventId: String) {
         fragment.findNavController().navigateSafe(
@@ -92,9 +70,4 @@ class TimelineNavigator(private val fragment: TimelineDialogFragment) {
             TimelineDialogFragmentDirections.toThreadTimeline(roomId, threadEventId)
         )
     }
-
-    fun navigateToShareRoom(roomId: String) {
-        fragment.findNavController()
-            .navigateSafe(TimelineDialogFragmentDirections.toShareRoom(roomId, false))
-    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsNavigator.kt b/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsNavigator.kt
new file mode 100644
index 000000000..fcdd6c65b
--- /dev/null
+++ b/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsNavigator.kt
@@ -0,0 +1,46 @@
+package org.futo.circles.feature.timeline.options
+
+import androidx.navigation.fragment.findNavController
+import org.futo.circles.core.extensions.navigateSafe
+import org.futo.circles.core.model.CircleRoomTypeArg
+
+class TimelineOptionsNavigator(private val fragment: TimelineOptionsDialogFragment) {
+
+
+    fun navigateToInviteMembers(timelineId: String) {
+        fragment.findNavController().navigateSafe(
+            TimelineOptionsDialogFragmentDirections.toInviteMembersDialogFragment(timelineId)
+        )
+    }
+
+    fun navigateToUpdateRoom(roomId: String, type: CircleRoomTypeArg) {
+        val destination = if (type == CircleRoomTypeArg.Circle)
+            TimelineOptionsDialogFragmentDirections.toUpdateCircleDialogFragment(roomId)
+        else TimelineOptionsDialogFragmentDirections.toUpdateGroupDialogFragment(roomId)
+        fragment.findNavController().navigateSafe(destination)
+    }
+
+    fun navigateToManageMembers(timelineId: String, type: CircleRoomTypeArg) {
+        fragment.findNavController().navigateSafe(
+            TimelineOptionsDialogFragmentDirections.toManageMembersDialogFragment(timelineId, type)
+        )
+    }
+
+    fun navigateToFollowing(roomId: String) {
+        fragment.findNavController().navigateSafe(
+            TimelineOptionsDialogFragmentDirections.toFollowingDialogFragment(roomId)
+        )
+    }
+
+
+    fun navigateToStateEvents(roomId: String) {
+        fragment.findNavController()
+            .navigateSafe(TimelineOptionsDialogFragmentDirections.toStateEvents(roomId))
+    }
+
+
+    fun navigateToShareRoom(roomId: String) {
+        fragment.findNavController()
+            .navigateSafe(TimelineOptionsDialogFragmentDirections.toShareRoom(roomId, false))
+    }
+}
\ No newline at end of file
-- 
GitLab