mirror of
https://github.com/recloudstream/cloudstream-extensions.git
synced 2024-08-15 03:03:54 +00:00
92 lines
No EOL
3.9 KiB
Kotlin
92 lines
No EOL
3.9 KiB
Kotlin
package com.lagradost
|
|
|
|
import android.content.res.ColorStateList
|
|
import android.graphics.drawable.Drawable
|
|
import android.os.Bundle
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import android.widget.ImageView
|
|
import android.widget.LinearLayout
|
|
import android.widget.TextView
|
|
import androidx.core.content.res.ResourcesCompat
|
|
import com.lagradost.cloudstream3.R
|
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
|
import com.lagradost.cloudstream3.AcraApplication.Companion.openBrowser
|
|
import com.lagradost.cloudstream3.plugins.Plugin
|
|
import com.lagradost.cloudstream3.ui.settings.SettingsAccount.Companion.showLoginInfo
|
|
import com.lagradost.cloudstream3.ui.settings.SettingsAccount.Companion.addAccount
|
|
import com.lagradost.cloudstream3.utils.UIHelper.colorFromAttribute
|
|
|
|
|
|
class NginxSettingsFragment(private val plugin: Plugin, val nginxApi: NginxApi) :
|
|
BottomSheetDialogFragment() {
|
|
|
|
override fun onCreateView(
|
|
inflater: LayoutInflater, container: ViewGroup?,
|
|
savedInstanceState: Bundle?
|
|
): View? {
|
|
// Inflate the layout for this fragment
|
|
val id = plugin.resources!!.getIdentifier("nginx_settings", "layout", BuildConfig.LIBRARY_PACKAGE_NAME)
|
|
val layout = plugin.resources!!.getLayout(id)
|
|
return inflater.inflate(layout, container, false)
|
|
}
|
|
|
|
private fun <T : View> View.findView(name: String): T {
|
|
val id = plugin.resources!!.getIdentifier(name, "id", BuildConfig.LIBRARY_PACKAGE_NAME)
|
|
return this.findViewById(id)
|
|
}
|
|
|
|
private fun getDrawable(name: String): Drawable? {
|
|
val id = plugin.resources!!.getIdentifier(name, "drawable", BuildConfig.LIBRARY_PACKAGE_NAME)
|
|
return ResourcesCompat.getDrawable(plugin.resources!!, id, null)
|
|
}
|
|
|
|
private fun getString(name: String): String? {
|
|
val id = plugin.resources!!.getIdentifier(name, "string", BuildConfig.LIBRARY_PACKAGE_NAME)
|
|
return plugin.resources!!.getString(id)
|
|
}
|
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
super.onViewCreated(view, savedInstanceState)
|
|
val infoView = view.findView<LinearLayout>("nginx_info")
|
|
val infoTextView = view.findView<TextView>("info_main_text")
|
|
val infoSubTextView = view.findView<TextView>("info_sub_text")
|
|
val infoImageView = view.findView<ImageView>("nginx_info_imageview")
|
|
|
|
infoTextView.text = getString("nginx_info_title") ?: "Nginx"
|
|
infoSubTextView.text = getString("nginx_info_summary") ?: ""
|
|
infoImageView.setImageDrawable(getDrawable("nginx_question"))
|
|
infoImageView.imageTintList =
|
|
ColorStateList.valueOf(view.context.colorFromAttribute(R.attr.white))
|
|
|
|
val loginView = view.findView<LinearLayout>("nginx_login")
|
|
val loginTextView = view.findView<TextView>("main_text")
|
|
val loginImageView = view.findView<ImageView>("nginx_login_imageview")
|
|
loginImageView.setImageDrawable(getDrawable("nginx"))
|
|
loginImageView.imageTintList =
|
|
ColorStateList.valueOf(view.context.colorFromAttribute(R.attr.white))
|
|
|
|
// object : View.OnClickListener is required to make it compile because otherwise it used invoke-customs
|
|
infoView.setOnClickListener(object : View.OnClickListener {
|
|
override fun onClick(v: View?) {
|
|
openBrowser(nginxApi.createAccountUrl)
|
|
}
|
|
})
|
|
|
|
|
|
loginTextView.text = view.context.resources.getString(R.string.login_format).format(
|
|
nginxApi.name,
|
|
view.context.resources.getString(R.string.account))
|
|
loginView.setOnClickListener(object : View.OnClickListener {
|
|
override fun onClick(v: View?) {
|
|
val info = nginxApi.loginInfo()
|
|
if (info != null) {
|
|
showLoginInfo(activity, nginxApi, info)
|
|
} else {
|
|
addAccount(activity, nginxApi)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
} |