diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/HomeFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/HomeFragment.kt index 25600b4e..bf2e238b 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/HomeFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/HomeFragment.kt @@ -84,8 +84,8 @@ class HomeFragment : MainFragment() { private val _taskGetPager: TaskHandler>; constructor(fragment: HomeFragment, inflater: LayoutInflater, cachedRecyclerData: RecyclerData, LinearLayoutManager, IPager, IPlatformContent, IPlatformContent, InsertedViewHolder>? = null) : super(fragment, inflater, cachedRecyclerData) { - _announcementsView = AnnouncementView(context).apply { - headerView.addView(AnnouncementView(context)) + _announcementsView = AnnouncementView(context, null).apply { + headerView.addView(this); }; _taskGetPager = TaskHandler>({ fragment.lifecycleScope }, { diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/SubscriptionsFeedFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/SubscriptionsFeedFragment.kt index 5a61b2f5..7f663f6b 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/SubscriptionsFeedFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/SubscriptionsFeedFragment.kt @@ -124,8 +124,8 @@ class SubscriptionsFeedFragment : MainFragment() { if (announcementsView == null && !isHomeEnabled) { val c = context; if (c != null) { - _announcementsView = AnnouncementView(c).apply { - headerView?.addView(AnnouncementView(c)) + _announcementsView = AnnouncementView(c, null).apply { + headerView?.addView(this) }; } } diff --git a/app/src/main/java/com/futo/platformplayer/listeners/OrientationManager.kt b/app/src/main/java/com/futo/platformplayer/listeners/OrientationManager.kt index ae6640a9..bf6bf96d 100644 --- a/app/src/main/java/com/futo/platformplayer/listeners/OrientationManager.kt +++ b/app/src/main/java/com/futo/platformplayer/listeners/OrientationManager.kt @@ -14,6 +14,8 @@ class OrientationManager : OrientationEventListener { constructor(context: Context) : super(context) { } + //TODO: Something weird is going on here + //TODO: Old implementation felt pretty good for me, but now with 0 deadzone still feels bad, even though code should be identical? override fun onOrientationChanged(orientationAnglep: Int) { if (orientationAnglep == -1) return diff --git a/app/src/main/java/com/futo/platformplayer/views/announcements/AnnouncementView.kt b/app/src/main/java/com/futo/platformplayer/views/announcements/AnnouncementView.kt index 873b02ea..7064e219 100644 --- a/app/src/main/java/com/futo/platformplayer/views/announcements/AnnouncementView.kt +++ b/app/src/main/java/com/futo/platformplayer/views/announcements/AnnouncementView.kt @@ -5,6 +5,8 @@ import android.util.AttributeSet import android.view.View import android.widget.* import androidx.constraintlayout.widget.ConstraintLayout +import androidx.lifecycle.findViewTreeLifecycleOwner +import androidx.lifecycle.lifecycleScope import com.futo.platformplayer.R import com.futo.platformplayer.dp import com.futo.platformplayer.logging.Logger @@ -14,6 +16,9 @@ import com.futo.platformplayer.states.SessionAnnouncement import com.futo.platformplayer.states.StateAnnouncement import com.futo.platformplayer.states.StateApp import com.futo.platformplayer.toHumanNowDiffString +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch class AnnouncementView : LinearLayout { private val _root: ConstraintLayout; @@ -28,9 +33,13 @@ class AnnouncementView : LinearLayout { private val _category: String?; private var _currentAnnouncement: Announcement? = null; + private val _scope: CoroutineScope?; + constructor(context: Context, attrs: AttributeSet? = null) : super(context, attrs) { inflate(context, R.layout.view_announcement, this); + _scope = findViewTreeLifecycleOwner()?.lifecycleScope ?: StateApp.instance.scopeOrNull; //TODO: Fetch correct scope + val dp10 = 10.dp(resources); setPadding(dp10, dp10, dp10, dp10); @@ -73,7 +82,9 @@ class AnnouncementView : LinearLayout { super.onAttachedToWindow() StateAnnouncement.instance.onAnnouncementChanged.subscribe(this) { - refresh(); + _scope?.launch(Dispatchers.Main) { + refresh(); + } } refresh(); diff --git a/app/src/stable/assets/sources/youtube b/app/src/stable/assets/sources/youtube index 35ac3ba9..12396068 160000 --- a/app/src/stable/assets/sources/youtube +++ b/app/src/stable/assets/sources/youtube @@ -1 +1 @@ -Subproject commit 35ac3ba949db354311d8ea6cd3401a92811747ab +Subproject commit 123960682a286232963b5ed456598b1922dbe559 diff --git a/app/src/unstable/assets/sources/youtube b/app/src/unstable/assets/sources/youtube index 35ac3ba9..12396068 160000 --- a/app/src/unstable/assets/sources/youtube +++ b/app/src/unstable/assets/sources/youtube @@ -1 +1 @@ -Subproject commit 35ac3ba949db354311d8ea6cd3401a92811747ab +Subproject commit 123960682a286232963b5ed456598b1922dbe559