diff --git a/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsDialogFragment.kt b/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsDialogFragment.kt
index a65b527f9cd45711abc9d412101c42ca06a268ad..813ddde0bbdd2cc64256d1fa3ba4ce80b809e8c0 100644
--- a/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsDialogFragment.kt
+++ b/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsDialogFragment.kt
@@ -54,6 +54,9 @@ class TimelineOptionsDialogFragment :
 
     private fun setupViews() {
         with(binding) {
+            lPushNotifications.setOnClickListener {
+                viewModel.setNotificationsEnabled(!svPushNotifications.isChecked)
+            }
             tvConfigure.apply {
                 setText(
                     getString(if (isGroupMode) R.string.configure_group else R.string.configure_circle)
@@ -113,6 +116,9 @@ class TimelineOptionsDialogFragment :
                 binding.toolbar.title = room.displayName
             }
         }
+        viewModel.notificationsStateLiveData.observeData(this) {
+            binding.svPushNotifications.isChecked = it
+        }
     }
 
 
diff --git a/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsViewModel.kt b/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsViewModel.kt
index b1d8f150eb5ef50889648c1f9db68199154edc1f..d206100bf73628a45ce86c9a4264487c921f6534 100644
--- a/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsViewModel.kt
+++ b/app/src/main/java/org/futo/circles/feature/timeline/options/TimelineOptionsViewModel.kt
@@ -23,10 +23,12 @@ class TimelineOptionsViewModel @Inject constructor(
     accessLevelDataSource: AccessLevelDataSource,
 ) : ViewModel() {
 
+    private val roomId: String = savedStateHandle.getOrThrow("roomId")
+
+
     val leaveDeleteEventLiveData = SingleEventLiveData<Response<Unit?>>()
     val accessLevelLiveData = accessLevelDataSource.accessLevelFlow.asLiveData()
-
-    private val roomId: String = savedStateHandle.getOrThrow("roomId")
+    val notificationsStateLiveData = roomNotificationsDataSource.notificationsStateLiveData
 
     val roomSummaryLiveData =
         MatrixSessionProvider.getSessionOrThrow().getRoom(roomId)?.getRoomSummaryLive()
diff --git a/app/src/main/res/layout/dialog_fragment_timeline_options.xml b/app/src/main/res/layout/dialog_fragment_timeline_options.xml
index 6c0b756bc1f7e0ea1890f6328fb2c491cc2e1a0c..efacf53dbc263ec64659392390939b38d6d61c1f 100644
--- a/app/src/main/res/layout/dialog_fragment_timeline_options.xml
+++ b/app/src/main/res/layout/dialog_fragment_timeline_options.xml
@@ -55,7 +55,7 @@
                 android:id="@+id/lPushNotifications"
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
-                android:layout_marginTop="16dp"
+                android:layout_marginTop="24dp"
                 android:background="?selectableItemBackground"
                 android:clickable="true"
                 android:focusable="true"
@@ -66,6 +66,8 @@
                     style="@style/settingMenuItem"
                     android:layout_width="match_parent"
                     android:layout_height="wrap_content"
+                    android:clickable="false"
+                    android:focusable="false"
                     android:text="@string/push_notifications"
                     app:drawableStartCompat="@drawable/ic_notifications"
                     app:layout_constraintBottom_toBottomOf="parent"