From e147fdd77ecc01d77e2794b976d7d6a12de801cf Mon Sep 17 00:00:00 2001 From: Kelvin Date: Mon, 2 Feb 2026 20:12:30 +0100 Subject: [PATCH] Empty view for notifs, back on toggle off --- .../mainactivity/topbar/GeneralTopBarFragment.kt | 5 ++++- .../views/notification/NotificationOverlayView.kt | 10 +++++++++- app/src/main/res/layout/overlay_notifications.xml | 5 +++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/topbar/GeneralTopBarFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/topbar/GeneralTopBarFragment.kt index 0938a94d..97e75bfc 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/topbar/GeneralTopBarFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/topbar/GeneralTopBarFragment.kt @@ -90,7 +90,10 @@ class GeneralTopBarFragment : TopFragment() { updateNotifCount(); _buttonNotifs?.setOnClickListener { - navigate(); + if(currentMain is NotificationOverlayView.Frag) + closeSegment(); + else + navigate(); } buttonSearch.setOnClickListener { diff --git a/app/src/main/java/com/futo/platformplayer/views/notification/NotificationOverlayView.kt b/app/src/main/java/com/futo/platformplayer/views/notification/NotificationOverlayView.kt index 84ce2375..59ce2dc6 100644 --- a/app/src/main/java/com/futo/platformplayer/views/notification/NotificationOverlayView.kt +++ b/app/src/main/java/com/futo/platformplayer/views/notification/NotificationOverlayView.kt @@ -24,6 +24,7 @@ import com.futo.platformplayer.states.StateApp import com.futo.platformplayer.views.AnyAdapterView import com.futo.platformplayer.views.AnyAdapterView.Companion.asAny import com.futo.platformplayer.views.LoaderView +import com.futo.platformplayer.views.NoResultsView import com.futo.platformplayer.views.adapters.AnyAdapter import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -31,22 +32,29 @@ import kotlinx.coroutines.launch class NotificationOverlayView: ConstraintLayout { lateinit var recycler: RecyclerView; + lateinit var emptyView: NoResultsView; var adapterNotifications: AnyAdapterView; constructor(context: Context) : super(context) { inflate(context, R.layout.overlay_notifications, this) recycler = findViewById(R.id.container_notifications); + emptyView = findViewById(R.id.no_results); adapterNotifications = recycler.asAny(RecyclerView.VERTICAL, false, { }); - + emptyView.setText("Nothing to see here", "You don't have any notifications", R.drawable.ic_notifications) } fun onShown(parameter: Any?) { val announcements = StateAnnouncement.instance.getVisibleAnnouncements(); adapterNotifications.adapter.setData(announcements); + if(announcements.any()) + emptyView.isVisible = false; + else + emptyView.isVisible = true; + StateAnnouncement.instance.onAnnouncementChanged.subscribe(this) { StateApp.instance.scopeOrNull?.launch(Dispatchers.Main) { Logger.i("NotificationOverlayView", "Announcements Changed"); diff --git a/app/src/main/res/layout/overlay_notifications.xml b/app/src/main/res/layout/overlay_notifications.xml index bb4a0db3..ef21192a 100644 --- a/app/src/main/res/layout/overlay_notifications.xml +++ b/app/src/main/res/layout/overlay_notifications.xml @@ -17,6 +17,11 @@ android:layout_width="match_parent" android:layout_height="1px" android:background="#181818" /> + +