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"