cloudstream/app/src/main/java/com/lagradost/cloudstream3/ui/player/DownloadedPlayerActivity.kt

109 lines
3.1 KiB
Kotlin
Raw Normal View History

2022-01-07 19:27:25 +00:00
package com.lagradost.cloudstream3.ui.player
2022-07-26 02:31:58 +00:00
import android.content.Intent
import android.net.Uri
2022-01-07 19:27:25 +00:00
import android.os.Bundle
import android.util.Log
import android.view.KeyEvent
import androidx.appcompat.app.AppCompatActivity
import com.hippo.unifile.UniFile
2022-01-07 19:27:25 +00:00
import com.lagradost.cloudstream3.CommonActivity
import com.lagradost.cloudstream3.R
import com.lagradost.cloudstream3.utils.ExtractorUri
import com.lagradost.cloudstream3.utils.UIHelper.navigate
const val DTAG = "PlayerActivity"
class DownloadedPlayerActivity : AppCompatActivity() {
override fun dispatchKeyEvent(event: KeyEvent?): Boolean {
CommonActivity.dispatchKeyEvent(this, event)?.let {
return it
}
return super.dispatchKeyEvent(event)
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
CommonActivity.onKeyDown(this, keyCode, event)
return super.onKeyDown(keyCode, event)
}
override fun onUserLeaveHint() {
super.onUserLeaveHint()
CommonActivity.onUserLeaveHint(this)
}
override fun onBackPressed() {
finish()
}
2022-07-26 02:31:58 +00:00
private fun playLink(url: String) {
this.navigate(
R.id.global_to_navigation_player, GeneratorPlayer.newInstance(
LinkGenerator(
listOf(
url
)
)
)
)
}
private fun playUri(uri: Uri) {
val name = UniFile.fromUri(this, uri).name
this.navigate(
R.id.global_to_navigation_player, GeneratorPlayer.newInstance(
DownloadFileGenerator(
listOf(
ExtractorUri(
uri = uri,
name = name ?: getString(R.string.downloaded_file)
)
)
)
)
)
}
2022-01-07 19:27:25 +00:00
override fun onCreate(savedInstanceState: Bundle?) {
Log.i(DTAG, "onCreate")
CommonActivity.loadThemes(this)
super.onCreate(savedInstanceState)
CommonActivity.init(this)
setContentView(R.layout.empty_layout)
2022-01-07 19:27:25 +00:00
val data = intent.data
2022-07-26 02:31:58 +00:00
if (intent?.action == Intent.ACTION_SEND) {
val extraText = try { // I dont trust android
intent.getStringExtra(Intent.EXTRA_TEXT)
} catch (e: Exception) {
null
}
val cd = intent.clipData
val item = if (cd != null && cd.itemCount > 0) cd.getItemAt(0) else null
val url = item?.text?.toString()
// idk what I am doing, just hope any of these work
if (item?.uri != null)
playUri(item.uri)
else if (url != null)
playLink(url)
else if (data != null)
playUri(data)
else if (extraText != null)
playLink(extraText)
else {
finish()
return
}
} else if (data?.scheme == "content") {
playUri(data)
} else {
2022-01-07 19:27:25 +00:00
finish()
return
}
}
}