diff --git a/app/src/main/java/com/futo/platformplayer/activities/LoginActivity.kt b/app/src/main/java/com/futo/platformplayer/activities/LoginActivity.kt index a20a6743619edcce1924f4a638e72215907649c4..36041919c9ec33dc98ce653a61735d698d5fca9e 100644 --- a/app/src/main/java/com/futo/platformplayer/activities/LoginActivity.kt +++ b/app/src/main/java/com/futo/platformplayer/activities/LoginActivity.kt @@ -10,6 +10,7 @@ import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import com.futo.platformplayer.R +import com.futo.platformplayer.UIDialogs import com.futo.platformplayer.api.media.platforms.js.SourceAuth import com.futo.platformplayer.api.media.platforms.js.SourcePluginAuthConfig import com.futo.platformplayer.api.media.platforms.js.SourcePluginConfig @@ -39,6 +40,7 @@ class LoginActivity : AppCompatActivity() { _textUrl = findViewById(R.id.text_url); _buttonClose = findViewById(R.id.button_close); _buttonClose.setOnClickListener { + UIDialogs.toast("Login cancelled", false); finish(); } diff --git a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/SourcePluginAuthConfig.kt b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/SourcePluginAuthConfig.kt index 69abaa0bd998e1bc6bcfd416d76032b2a0afefb8..439e8d82cb8f6625e41977c2165632bd4c9f5b7f 100644 --- a/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/SourcePluginAuthConfig.kt +++ b/app/src/main/java/com/futo/platformplayer/api/media/platforms/js/SourcePluginAuthConfig.kt @@ -11,4 +11,5 @@ class SourcePluginAuthConfig( val userAgent: String? = null, val loginButton: String? = null, val domainHeadersToFind: Map<String, List<String>>? = null, + val loginWarning: String? = null ) { } \ No newline at end of file diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/SourceDetailFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/SourceDetailFragment.kt index 6a743d4e59b82e6a598e78ffdbe56829e8f0b02b..c9b784fbbe7f8e19504dbf7688a3bfbdde76d791 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/SourceDetailFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/SourceDetailFragment.kt @@ -354,11 +354,22 @@ class SourceDetailFragment : MainFragment() { if(config.authentication == null) return; - LoginActivity.showLogin(StateApp.instance.context, config) { - StatePlugins.instance.setPluginAuth(config.id, it); - - reloadSource(config.id); - }; + if(config.authentication.loginWarning != null) { + UIDialogs.showDialog(context, R.drawable.ic_warning_yellow, "Login Warning", + config.authentication.loginWarning, null, 0, + UIDialogs.Action("Cancel", {}, UIDialogs.ActionStyle.NONE), + UIDialogs.Action("Login", { + LoginActivity.showLogin(StateApp.instance.context, config) { + StatePlugins.instance.setPluginAuth(config.id, it); + reloadSource(config.id); + }; + }, UIDialogs.ActionStyle.PRIMARY)) + } + else + LoginActivity.showLogin(StateApp.instance.context, config) { + StatePlugins.instance.setPluginAuth(config.id, it); + reloadSource(config.id); + }; } private fun logoutSource(clear: Boolean = true) { val config = _config ?: return; 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 88fc76dc6382c7f6ea39558967de533a74a2ef39..bf6ba06f937eba5f8f72bd6fc1d9a193efb9d5a3 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 @@ -109,16 +109,6 @@ class SubscriptionsFeedFragment : MainFragment() { constructor(fragment: SubscriptionsFeedFragment, inflater: LayoutInflater, cachedRecyclerData: RecyclerData<InsertedViewAdapterWithLoader<ContentPreviewViewHolder>, LinearLayoutManager, IPager<IPlatformContent>, IPlatformContent, IPlatformContent, InsertedViewHolder<ContentPreviewViewHolder>>? = null) : super(fragment, inflater, cachedRecyclerData) { Logger.i(TAG, "SubscriptionsFeedFragment constructor()"); - StateSubscriptions.instance.onFeedProgress.subscribe(this) { id, progress, total -> - if(subGroup?.id == id) - fragment.lifecycleScope.launch(Dispatchers.Main) { - try { - setProgress(progress, total); - } catch (e: Throwable) { - Logger.e(TAG, "Failed to set progress", e); - } - } - } StateSubscriptions.instance.global.onUpdateProgress.subscribe(this) { progress, total -> }; @@ -174,12 +164,24 @@ class SubscriptionsFeedFragment : MainFragment() { if (!StateSubscriptions.instance.global.isGlobalUpdating) { finishRefreshLayoutLoader(); } + + StateSubscriptions.instance.onFeedProgress.subscribe(this) { id, progress, total -> + if(subGroup?.id == id) + fragment.lifecycleScope.launch(Dispatchers.Main) { + try { + setProgress(progress, total); + } catch (e: Throwable) { + Logger.e(TAG, "Failed to set progress", e); + } + } + } } override fun cleanup() { super.cleanup() StateSubscriptions.instance.global.onUpdateProgress.remove(this); StateSubscriptions.instance.onSubscriptionsChanged.remove(this); + StateSubscriptions.instance.onFeedProgress.remove(this); } override val feedStyle: FeedStyle get() = Settings.instance.subscriptions.getSubscriptionsFeedStyle(); diff --git a/app/src/main/res/layout/dialog_multi_button.xml b/app/src/main/res/layout/dialog_multi_button.xml index 786a7cce538c4f2771b2543ff28d0627fbe7114c..69441641326753e59e94b1da16c0510d99fa5565 100644 --- a/app/src/main/res/layout/dialog_multi_button.xml +++ b/app/src/main/res/layout/dialog_multi_button.xml @@ -38,12 +38,12 @@ android:id="@+id/dialog_text_details" android:layout_width="match_parent" android:textColor="#AAAAAA" - android:fontFamily="@font/inter_regular" + android:fontFamily="@font/inter_light" android:text="" android:textAlignment="center" android:layout_marginStart="30dp" android:layout_marginEnd="30dp" - android:textSize="11dp" + android:textSize="13dp" android:layout_height="wrap_content" /> <TextView android:id="@+id/dialog_text_code" diff --git a/app/src/stable/assets/sources/youtube b/app/src/stable/assets/sources/youtube index c3e21983564fce43d8c0b9aa96ee97b47fd7353f..b7864b910172659d29602f05d968427bffcc95f0 160000 --- a/app/src/stable/assets/sources/youtube +++ b/app/src/stable/assets/sources/youtube @@ -1 +1 @@ -Subproject commit c3e21983564fce43d8c0b9aa96ee97b47fd7353f +Subproject commit b7864b910172659d29602f05d968427bffcc95f0 diff --git a/app/src/unstable/assets/sources/youtube b/app/src/unstable/assets/sources/youtube index c3e21983564fce43d8c0b9aa96ee97b47fd7353f..b7864b910172659d29602f05d968427bffcc95f0 160000 --- a/app/src/unstable/assets/sources/youtube +++ b/app/src/unstable/assets/sources/youtube @@ -1 +1 @@ -Subproject commit c3e21983564fce43d8c0b9aa96ee97b47fd7353f +Subproject commit b7864b910172659d29602f05d968427bffcc95f0