From 7c66b03d00c9bdea96d111c068b645b43c3e814c Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Tue, 25 Jul 2023 18:45:55 +0300 Subject: [PATCH] Add action for notification switch --- .../timeline/options/TimelineOptionsDialogFragment.kt | 6 ++++++ .../feature/timeline/options/TimelineOptionsViewModel.kt | 6 ++++-- .../main/res/layout/dialog_fragment_timeline_options.xml | 4 +++- 3 files changed, 13 insertions(+), 3 deletions(-) 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 a65b527f9..813ddde0b 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 b1d8f150e..d206100bf 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 6c0b756bc..efacf53db 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" -- GitLab