From 32b5ae70948001c41570de19fa790ccb1dee6689 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Thu, 8 Sep 2022 20:28:01 +0200 Subject: [PATCH] fix crash when opening /user/ link --- .../libretube/activities/MainActivity.kt | 2 +- .../libretube/fragments/ChannelFragment.kt | 53 ++++++++++--------- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/app/src/main/java/com/github/libretube/activities/MainActivity.kt b/app/src/main/java/com/github/libretube/activities/MainActivity.kt index 5649e0b6e..920c93bb2 100644 --- a/app/src/main/java/com/github/libretube/activities/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/activities/MainActivity.kt @@ -325,7 +325,7 @@ class MainActivity : BaseActivity() { intent?.getStringExtra(IntentData.channelName) != null -> navController.navigate( R.id.channelFragment, bundleOf( - IntentData.channelId to intent?.getStringExtra(IntentData.channelName) + IntentData.channelName to intent?.getStringExtra(IntentData.channelName) ) ) intent?.getStringExtra(IntentData.playlistId) != null -> navController.navigate( diff --git a/app/src/main/java/com/github/libretube/fragments/ChannelFragment.kt b/app/src/main/java/com/github/libretube/fragments/ChannelFragment.kt index cbfada174..a2a92473e 100644 --- a/app/src/main/java/com/github/libretube/fragments/ChannelFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/ChannelFragment.kt @@ -39,6 +39,7 @@ class ChannelFragment : BaseFragment() { channelName = it.getString(IntentData.channelName) ?.replace("/c/", "") ?.replace("/user/", "") + Log.e(TAG(), channelName.toString()) } } @@ -60,7 +61,6 @@ class ChannelFragment : BaseFragment() { val refreshChannel = { binding.channelRefresh.isRefreshing = true fetchChannel() - isSubscribed() } refreshChannel() binding.channelRefresh.setOnRefreshListener { @@ -82,31 +82,6 @@ class ChannelFragment : BaseFragment() { } } - private fun isSubscribed() { - lifecycleScope.launchWhenCreated { - isSubscribed = SubscriptionHelper.isSubscribed(channelId!!) - if (isSubscribed == null) return@launchWhenCreated - - runOnUiThread { - if (isSubscribed == true) { - binding.channelSubscribe.text = getString(R.string.unsubscribe) - } - - binding.channelSubscribe.setOnClickListener { - binding.channelSubscribe.text = if (isSubscribed == true) { - SubscriptionHelper.unsubscribe(channelId!!) - isSubscribed = false - getString(R.string.subscribe) - } else { - SubscriptionHelper.subscribe(channelId!!) - isSubscribed = true - getString(R.string.unsubscribe) - } - } - } - } - } - private fun fetchChannel() { fun run() { lifecycleScope.launchWhenCreated { @@ -126,9 +101,35 @@ class ChannelFragment : BaseFragment() { Log.e(TAG(), "HttpException, unexpected response") return@launchWhenCreated } + // needed if the channel gets loaded by the ID + channelId = response.id + + // fetch and update the subscription status + isSubscribed = SubscriptionHelper.isSubscribed(channelId!!) + if (isSubscribed == null) return@launchWhenCreated + + runOnUiThread { + if (isSubscribed == true) { + binding.channelSubscribe.text = getString(R.string.unsubscribe) + } + + binding.channelSubscribe.setOnClickListener { + binding.channelSubscribe.text = if (isSubscribed == true) { + SubscriptionHelper.unsubscribe(channelId!!) + isSubscribed = false + getString(R.string.subscribe) + } else { + SubscriptionHelper.subscribe(channelId!!) + isSubscribed = true + getString(R.string.unsubscribe) + } + } + } + nextPage = response.nextpage isLoading = false binding.channelRefresh.isRefreshing = false + runOnUiThread { binding.channelScrollView.visibility = View.VISIBLE binding.channelName.text = response.name