diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 398a0d5e..6ee1b793 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -51,16 +51,12 @@
-
-
>()
val onDialogDismissedEvent = Event()
lateinit var navOptions: NavOptions
+
+ var currentToast: Toast? = null
+ fun showToast(act: Activity?, @StringRes message: Int, duration: Int) {
+ if (act == null) return
+ showToast(act, act.getString(message), duration)
+ }
+
+ fun showToast(act: Activity?, message: String, duration: Int) {
+ if (act == null) return
+ try {
+ currentToast?.cancel()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ try {
+ val inflater = act.getSystemService(LAYOUT_INFLATER_SERVICE) as LayoutInflater
+
+ val layout: View = inflater.inflate(
+ R.layout.toast,
+ act.findViewById(R.id.toast_layout_root) as ViewGroup?
+ )
+
+ val text = layout.findViewById(R.id.text) as TextView
+ text.text = message.trim()
+
+ val toast = Toast(act)
+ toast.setGravity(Gravity.CENTER_HORIZONTAL or Gravity.BOTTOM, 0, 5.toPx)
+ toast.duration = duration
+ toast.view = layout
+ toast.show()
+ currentToast = toast
+ } catch (e: Exception) {
+
+ }
+ }
}
private fun enterPIPMode() {
diff --git a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AnimeFlickProvider.kt b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AnimeFlickProvider.kt
index 0c849187..c71033b1 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AnimeFlickProvider.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/animeproviders/AnimeFlickProvider.kt
@@ -2,7 +2,8 @@ package com.lagradost.cloudstream3.animeproviders
import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.utils.ExtractorLink
-import com.lagradost.cloudstream3.utils.getQualityFromName
+import com.lagradost.cloudstream3.utils.Qualities
+import com.lagradost.cloudstream3.utils.extractorApis
import org.jsoup.Jsoup
import java.util.*
@@ -65,14 +66,15 @@ class AnimeFlickProvider : MainAPI() {
val title = doc.selectFirst("h2.title").text()
val yearText = doc.selectFirst(".trending-year")?.text()
- val year = if(yearText != null) Regex("""(\d{4})""").find(yearText)?.destructured?.component1()?.toIntOrNull() else null
+ val year = if (yearText != null) Regex("""(\d{4})""").find(yearText)?.destructured?.component1()
+ ?.toIntOrNull() else null
val description = doc.selectFirst("p").text()
val genres = doc.select("a[href*=\"genre-\"]").map { it.text() }
val episodes = doc.select("#collapseOne .block-space > .row > div:nth-child(2)").map {
val name = it.selectFirst("a").text()
- val link = mainUrl + it.selectFirst("a").attr("href")
+ val link = mainUrl + it.selectFirst("a").attr("href")
AnimeEpisode(link, name)
}.reversed()
@@ -102,19 +104,33 @@ class AnimeFlickProvider : MainAPI() {
val html = khttp.get(data).text
val episodeRegex = Regex("""(https://.*?\.mp4)""")
- episodeRegex.findAll(html).map {
+ val links = episodeRegex.findAll(html).map {
it.value
- }.toList().forEach {
- callback(
- ExtractorLink(
- "Animeflick",
- "Animeflick - Auto",
- it,
- "",
- getQualityFromName("1080")
+ }.toList()
+ for (link in links) {
+ var alreadyAdded = false
+ for (extractor in extractorApis) {
+ if (link.startsWith(extractor.mainUrl)) {
+ extractor.getSafeUrl(link, data)?.forEach {
+ callback(it)
+ }
+ alreadyAdded = true
+ break
+ }
+ }
+ if (!alreadyAdded) {
+ callback(
+ ExtractorLink(
+ this.name,
+ "${this.name} - Auto",
+ link,
+ "",
+ Qualities.P1080.value
+ )
)
- )
+ }
}
+
return true
}
}
diff --git a/app/src/main/java/com/lagradost/cloudstream3/receivers/VideoDownloadRestartReceiver.kt b/app/src/main/java/com/lagradost/cloudstream3/receivers/VideoDownloadRestartReceiver.kt
index beabd7ab..9a7ee826 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/receivers/VideoDownloadRestartReceiver.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/receivers/VideoDownloadRestartReceiver.kt
@@ -5,9 +5,6 @@ import android.content.Context
import android.content.Intent
import android.os.Build
import android.util.Log
-import com.lagradost.cloudstream3.services.RESTART_ALL_DOWNLOADS_AND_QUEUE
-import com.lagradost.cloudstream3.services.START_VALUE_KEY
-import com.lagradost.cloudstream3.services.VideoDownloadKeepAliveService
class VideoDownloadRestartReceiver : BroadcastReceiver() {
diff --git a/app/src/main/java/com/lagradost/cloudstream3/services/VideoDownloadKeepAliveService.kt b/app/src/main/java/com/lagradost/cloudstream3/services/VideoDownloadKeepAliveService.kt
deleted file mode 100644
index 9bbf846d..00000000
--- a/app/src/main/java/com/lagradost/cloudstream3/services/VideoDownloadKeepAliveService.kt
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.lagradost.cloudstream3.services
-
-import android.app.Service
-import android.content.Intent
-import android.os.IBinder
-import android.util.Log
-import com.lagradost.cloudstream3.receivers.VideoDownloadRestartReceiver
-import com.lagradost.cloudstream3.utils.DataStore.getKey
-import com.lagradost.cloudstream3.utils.DataStore.getKeys
-import com.lagradost.cloudstream3.utils.VideoDownloadManager
-
-const val RESTART_ALL_DOWNLOADS_AND_QUEUE = 1
-const val RESTART_NONE = 0
-const val START_VALUE_KEY = "start_value"
-
-class VideoDownloadKeepAliveService : Service() {
- override fun onBind(p0: Intent?): IBinder? {
- return null
- }
-
- override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
- val startValue = intent?.getIntExtra(START_VALUE_KEY, RESTART_NONE) ?: RESTART_NONE
- Log.i("Service", "Restarted with start value of $startValue")
-
- if (startValue == RESTART_ALL_DOWNLOADS_AND_QUEUE) {
- val keys = this.getKeys(VideoDownloadManager.KEY_RESUME_PACKAGES)
- val resumePkg = keys.mapNotNull { k -> this.getKey(k) }
-
- for (pkg in resumePkg) { // ADD ALL CURRENT DOWNLOADS
- VideoDownloadManager.downloadFromResume(this, pkg)
- }
-
- // ADD QUEUE
- val resumeQueue =
- this.getKey>(VideoDownloadManager.KEY_RESUME_QUEUE_PACKAGES)
- if (resumeQueue != null && resumeQueue.isNotEmpty()) {
- val sorted = resumeQueue.sortedBy { item -> item.index }
- for (queueItem in sorted) {
- VideoDownloadManager.downloadFromResume(this, queueItem.pkg)
- }
- }
- }
-
- return START_STICKY//super.onStartCommand(intent, flags, startId)
- }
-
- override fun onDestroy() {
- val broadcastIntent = Intent()
- broadcastIntent.action = "restart_service"
- broadcastIntent.setClass(this, VideoDownloadRestartReceiver::class.java)
- this.sendBroadcast(broadcastIntent)
- super.onDestroy()
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerFragment.kt
index a37660cf..e6898c79 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerFragment.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerFragment.kt
@@ -57,6 +57,7 @@ import com.google.android.material.button.MaterialButton
import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.MainActivity.Companion.canEnterPipMode
import com.lagradost.cloudstream3.MainActivity.Companion.isInPIPMode
+import com.lagradost.cloudstream3.MainActivity.Companion.showToast
import com.lagradost.cloudstream3.R
import com.lagradost.cloudstream3.mvvm.Resource
import com.lagradost.cloudstream3.mvvm.observe
@@ -1242,7 +1243,8 @@ class PlayerFragment : Fragment() {
}
}
- val startIndexFromMap = currentSubtitles.map { it.removeSuffix(" ") }.indexOf(preferredSubtitles.removeSuffix(" ")) + 1
+ val startIndexFromMap =
+ currentSubtitles.map { it.removeSuffix(" ") }.indexOf(preferredSubtitles.removeSuffix(" ")) + 1
var subtitleIndex = startIndexFromMap
if (currentSubtitles.isEmpty()) {
@@ -1805,33 +1807,30 @@ class PlayerFragment : Fragment() {
when (error.type) {
ExoPlaybackException.TYPE_SOURCE -> {
if (currentUrl?.url != "") {
- Toast.makeText(
+ showToast(
activity,
"Source error\n" + error.sourceException.message,
LENGTH_SHORT
)
- .show()
tryNextMirror()
}
}
ExoPlaybackException.TYPE_REMOTE -> {
- Toast.makeText(activity, "Remote error", LENGTH_SHORT)
- .show()
+ showToast(activity, "Remote error", LENGTH_SHORT)
}
ExoPlaybackException.TYPE_RENDERER -> {
- Toast.makeText(
+ showToast(
activity,
"Renderer error\n" + error.rendererException.message,
LENGTH_SHORT
)
- .show()
}
ExoPlaybackException.TYPE_UNEXPECTED -> {
- Toast.makeText(
+ showToast(
activity,
"Unexpected player error\n" + error.unexpectedException.message,
LENGTH_SHORT
- ).show()
+ )
}
}
}
@@ -1840,8 +1839,8 @@ class PlayerFragment : Fragment() {
println("Warning: Illegal state exception in PlayerFragment")
} finally {
setPreferredSubLanguage(
- if(isDownloadedFile) {
- if(activeSubtitles.isNotEmpty()) {
+ if (isDownloadedFile) {
+ if (activeSubtitles.isNotEmpty()) {
activeSubtitles.first()
} else null
} else {
@@ -1877,9 +1876,7 @@ class PlayerFragment : Fragment() {
initPlayer(getCurrentUrl())
}
} else {
- context?.let { ctx ->
- Toast.makeText(ctx, "No Links Found", LENGTH_SHORT).show()
- }
+ showToast(activity, "No Links Found", LENGTH_SHORT)
}
}
}
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt
index 421cede6..4ab73e12 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt
@@ -39,6 +39,7 @@ const val ACTION_COPY_LINK = 9
const val ACTION_SHOW_OPTIONS = 10
const val ACTION_CLICK_DEFAULT = 11
+const val ACTION_SHOW_TOAST = 12
data class EpisodeClickEvent(val action: Int, val data: ResultEpisode)
@@ -173,7 +174,7 @@ class EpisodeAdapter(
}
episodePoster?.setOnLongClickListener {
- Toast.makeText(it.context, R.string.play_episode_toast, Toast.LENGTH_SHORT).show()
+ clickCallback.invoke(EpisodeClickEvent(ACTION_SHOW_TOAST, card))
return@setOnLongClickListener true
}
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt
index b20933e9..0f8486a2 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt
@@ -31,25 +31,16 @@ import com.google.android.material.button.MaterialButton
import com.lagradost.cloudstream3.*
import com.lagradost.cloudstream3.APIHolder.getApiFromName
import com.lagradost.cloudstream3.APIHolder.getId
-import com.lagradost.cloudstream3.utils.UIHelper.checkWrite
-import com.lagradost.cloudstream3.utils.UIHelper.colorFromAttribute
-import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbar
-import com.lagradost.cloudstream3.utils.UIHelper.getStatusBarHeight
-import com.lagradost.cloudstream3.utils.UIHelper.hideKeyboard
-import com.lagradost.cloudstream3.utils.UIHelper.popCurrentPage
-import com.lagradost.cloudstream3.utils.UIHelper.popupMenuNoIcons
-import com.lagradost.cloudstream3.utils.UIHelper.popupMenuNoIconsAndNoStringRes
-import com.lagradost.cloudstream3.utils.UIHelper.requestRW
+import com.lagradost.cloudstream3.MainActivity.Companion.showToast
import com.lagradost.cloudstream3.mvvm.Resource
import com.lagradost.cloudstream3.mvvm.observe
import com.lagradost.cloudstream3.ui.WatchType
import com.lagradost.cloudstream3.ui.download.DOWNLOAD_ACTION_DOWNLOAD
import com.lagradost.cloudstream3.ui.download.DOWNLOAD_NAVIGATE_TO
-import com.lagradost.cloudstream3.ui.download.EasyDownloadButton
import com.lagradost.cloudstream3.ui.download.DownloadButtonSetup.handleDownloadClick
+import com.lagradost.cloudstream3.ui.download.EasyDownloadButton
import com.lagradost.cloudstream3.ui.player.PlayerData
import com.lagradost.cloudstream3.ui.player.PlayerFragment
-import com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment
import com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment.Companion.getDownloadSubsLanguageISO639_1
import com.lagradost.cloudstream3.utils.*
import com.lagradost.cloudstream3.utils.AppUtils.isAppInstalled
@@ -60,16 +51,22 @@ import com.lagradost.cloudstream3.utils.Coroutines.main
import com.lagradost.cloudstream3.utils.DataStore.getFolderName
import com.lagradost.cloudstream3.utils.DataStore.setKey
import com.lagradost.cloudstream3.utils.DataStoreHelper.getViewPos
+import com.lagradost.cloudstream3.utils.UIHelper.checkWrite
+import com.lagradost.cloudstream3.utils.UIHelper.colorFromAttribute
+import com.lagradost.cloudstream3.utils.UIHelper.fixPaddingStatusbar
+import com.lagradost.cloudstream3.utils.UIHelper.getStatusBarHeight
+import com.lagradost.cloudstream3.utils.UIHelper.hideKeyboard
+import com.lagradost.cloudstream3.utils.UIHelper.popCurrentPage
+import com.lagradost.cloudstream3.utils.UIHelper.popupMenuNoIcons
+import com.lagradost.cloudstream3.utils.UIHelper.popupMenuNoIconsAndNoStringRes
+import com.lagradost.cloudstream3.utils.UIHelper.requestRW
import com.lagradost.cloudstream3.utils.UIHelper.setImage
-
import com.lagradost.cloudstream3.utils.VideoDownloadManager.sanitizeFilename
import kotlinx.android.synthetic.main.fragment_result.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.withContext
import java.io.File
-import kotlin.collections.ArrayList
-import kotlin.collections.HashMap
const val MAX_SYNO_LENGH = 300
@@ -278,7 +275,7 @@ class ResultFragment : Fragment() {
media_route_button?.alpha = if (chromecastSupport) 1f else 0.3f
if (!chromecastSupport) {
media_route_button.setOnClickListener {
- Toast.makeText(it.context, "This provider has no chromecast support", Toast.LENGTH_LONG).show()
+ showToast(activity, "This provider has no chromecast support", Toast.LENGTH_LONG)
}
}
@@ -369,7 +366,11 @@ class ResultFragment : Fragment() {
return true
}
is Resource.Failure -> {
- Toast.makeText(requireContext(), R.string.error_loading_links, Toast.LENGTH_SHORT).show()
+ showToast(
+ activity,
+ R.string.error_loading_links,
+ Toast.LENGTH_SHORT
+ )
}
else -> {
@@ -476,7 +477,7 @@ class ResultFragment : Fragment() {
// DOWNLOAD VIDEO
VideoDownloadManager.downloadEpisode(
- ctx,
+ activity,
src,//url ?: return,
folder,
meta,
@@ -525,6 +526,10 @@ class ResultFragment : Fragment() {
if (!isLoaded) return@main // CANT LOAD
when (episodeClick.action) {
+ ACTION_SHOW_TOAST -> {
+ showToast(activity, R.string.play_episode_toast, Toast.LENGTH_SHORT)
+ }
+
ACTION_CLICK_DEFAULT -> {
context?.let { ctx ->
if (ctx.isConnectedToChromecast()) {
@@ -584,7 +589,7 @@ class ResultFragment : Fragment() {
?: return@acquireSingeExtractorLink
val clip = ClipData.newPlainText(link.name, link.url)
serviceClipboard.setPrimaryClip(clip)
- Toast.makeText(requireContext(), "Text Copied", Toast.LENGTH_SHORT).show()
+ showToast(activity, "Link copied to clipboard", Toast.LENGTH_SHORT)
}
}
@@ -1012,7 +1017,7 @@ class ResultFragment : Fragment() {
}
}
is Resource.Failure -> {
- result_error_text.text = data.errorString
+ result_error_text.text = url?.plus("\n") + data.errorString
updateVisStatus(1)
}
is Resource.Loading -> {
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchHelper.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchHelper.kt
index bc2ce06c..d2534bde 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchHelper.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchHelper.kt
@@ -2,6 +2,7 @@ package com.lagradost.cloudstream3.ui.search
import android.app.Activity
import android.widget.Toast
+import com.lagradost.cloudstream3.MainActivity.Companion.showToast
import com.lagradost.cloudstream3.utils.AppUtils.loadSearchResult
object SearchHelper {
@@ -12,9 +13,7 @@ object SearchHelper {
activity.loadSearchResult(card)
}
SEARCH_ACTION_SHOW_METADATA -> {
- activity?.let { act ->
- Toast.makeText(act, callback.card.name, Toast.LENGTH_SHORT).show()
- }
+ showToast(activity, callback.card.name, Toast.LENGTH_SHORT)
}
}
}
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt
index f8dcee90..f293b3a7 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
import android.widget.Toast
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
+import com.lagradost.cloudstream3.MainActivity.Companion.showToast
import com.lagradost.cloudstream3.R
import com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment
import com.lagradost.cloudstream3.utils.InAppUpdater.Companion.runAutoUpdate
@@ -19,7 +20,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
thread {
if (!requireActivity().runAutoUpdate(false)) {
activity?.runOnUiThread {
- Toast.makeText(this.context, "No Update Found", Toast.LENGTH_SHORT).show()
+ showToast(activity, "No Update Found", Toast.LENGTH_SHORT)
}
}
}
diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt
index bca44297..4a2d4b32 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt
@@ -21,6 +21,7 @@ import com.google.android.exoplayer2.text.Cue
import com.google.android.exoplayer2.ui.CaptionStyleCompat
import com.jaredrummler.android.colorpicker.ColorPickerDialog
import com.lagradost.cloudstream3.MainActivity
+import com.lagradost.cloudstream3.MainActivity.Companion.showToast
import com.lagradost.cloudstream3.R
import com.lagradost.cloudstream3.utils.DataStore.getKey
import com.lagradost.cloudstream3.utils.DataStore.setKey
@@ -207,7 +208,7 @@ class SubtitlesFragment : Fragment() {
this.setOnLongClickListener {
it.context.setColor(id, null)
- Toast.makeText(it.context, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT).show()
+ showToast(activity, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT)
return@setOnLongClickListener true
}
}
@@ -248,7 +249,7 @@ class SubtitlesFragment : Fragment() {
subs_subtitle_elevation.setOnLongClickListener {
state.elevation = 0
it.context.updateState()
- Toast.makeText(it.context, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT).show()
+ showToast(activity, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT)
return@setOnLongClickListener true
}
@@ -276,7 +277,7 @@ class SubtitlesFragment : Fragment() {
subs_edge_type.setOnLongClickListener {
state.edgeType = CaptionStyleCompat.EDGE_TYPE_OUTLINE
it.context.updateState()
- Toast.makeText(it.context, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT).show()
+ showToast(activity, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT)
return@setOnLongClickListener true
}
@@ -312,7 +313,7 @@ class SubtitlesFragment : Fragment() {
subs_font.setOnLongClickListener { textView ->
state.typeface = null
textView.context.updateState()
- Toast.makeText(textView.context, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT).show()
+ showToast(activity, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT)
return@setOnLongClickListener true
}
@@ -336,7 +337,7 @@ class SubtitlesFragment : Fragment() {
subs_auto_select_language.setOnLongClickListener { textView ->
textView.context.setKey(SUBTITLE_AUTO_SELECT_KEY, "en")
- Toast.makeText(textView.context, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT).show()
+ showToast(activity, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT)
return@setOnLongClickListener true
}
@@ -359,7 +360,7 @@ class SubtitlesFragment : Fragment() {
subs_download_languages.setOnLongClickListener { textView ->
textView.context.setKey(SUBTITLE_DOWNLOAD_KEY, listOf("en"))
- Toast.makeText(textView.context, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT).show()
+ showToast(activity, R.string.subs_default_reset_toast, Toast.LENGTH_SHORT)
return@setOnLongClickListener true
}
diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt
index 02a36991..3380cb3f 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt
@@ -15,8 +15,8 @@ import com.fasterxml.jackson.databind.json.JsonMapper
import com.fasterxml.jackson.module.kotlin.KotlinModule
import com.fasterxml.jackson.module.kotlin.readValue
import com.lagradost.cloudstream3.BuildConfig
+import com.lagradost.cloudstream3.MainActivity.Companion.showToast
import com.lagradost.cloudstream3.R
-import com.lagradost.cloudstream3.utils.InAppUpdater.Companion.runAutoUpdate
import java.io.*
import java.net.URL
import java.net.URLConnection
@@ -178,7 +178,7 @@ class InAppUpdater {
} catch (e: Exception) {
println(e)
runOnUiThread {
- Toast.makeText(this, "Permission error", Toast.LENGTH_SHORT).show()
+ showToast(this, "Permission error", Toast.LENGTH_SHORT)
}
return false
}
@@ -291,14 +291,14 @@ class InAppUpdater {
val context = this
builder.apply {
setPositiveButton("Update") { _, _ ->
- Toast.makeText(context, "Download started", Toast.LENGTH_LONG).show()
+ showToast(context, "Download started", Toast.LENGTH_LONG)
thread {
val downloadStatus = context.downloadUpdate(update.updateURL)
if (!downloadStatus) {
runOnUiThread {
- Toast.makeText(context,
+ showToast(context,
"Download Failed",
- Toast.LENGTH_LONG).show()
+ Toast.LENGTH_LONG)
}
} /*else {
activity.runOnUiThread {
diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/VideoDownloadManager.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/VideoDownloadManager.kt
index 3771e38f..a5db6f20 100644
--- a/app/src/main/java/com/lagradost/cloudstream3/utils/VideoDownloadManager.kt
+++ b/app/src/main/java/com/lagradost/cloudstream3/utils/VideoDownloadManager.kt
@@ -1,9 +1,6 @@
package com.lagradost.cloudstream3.utils
-import android.app.ActivityManager
-import android.app.NotificationChannel
-import android.app.NotificationManager
-import android.app.PendingIntent
+import android.app.*
import android.content.*
import android.graphics.Bitmap
import android.net.Uri
@@ -19,6 +16,7 @@ import androidx.core.app.NotificationManagerCompat
import androidx.core.net.toUri
import com.bumptech.glide.Glide
import com.lagradost.cloudstream3.MainActivity
+import com.lagradost.cloudstream3.MainActivity.Companion.showToast
import com.lagradost.cloudstream3.R
import com.lagradost.cloudstream3.mvvm.logError
import com.lagradost.cloudstream3.mvvm.normalSafeApiCall
@@ -908,15 +906,15 @@ object VideoDownloadManager {
return context.getKey(KEY_RESUME_PACKAGES, id.toString())
}
- fun downloadFromResume(context: Context, pkg: DownloadResumePackage, setKey: Boolean = true) {
+ fun downloadFromResume(context: Activity, pkg: DownloadResumePackage, setKey: Boolean = true) {
if (!currentDownloads.any { it == pkg.item.ep.id }) {
if (currentDownloads.size == maxConcurrentDownloads) {
main {
- Toast.makeText(
+ showToast( // can be replaced with regular Toast
context,
"${pkg.item.ep.mainName}${pkg.item.ep.episode?.let { " Episode $it " } ?: " "}queued",
Toast.LENGTH_SHORT
- ).show()
+ )
}
}
downloadQueue.addLast(pkg)
@@ -947,12 +945,13 @@ object VideoDownloadManager {
}
fun downloadEpisode(
- context: Context,
+ context: Activity?,
source: String?,
folder: String?,
ep: DownloadEpisodeMetadata,
links: List
) {
+ if(context == null) return
val validLinks = links.filter { !it.isM3u8 }
if (validLinks.isNotEmpty()) {
downloadFromResume(context, DownloadResumePackage(DownloadItem(source, folder, ep, validLinks), null))
diff --git a/app/src/main/res/layout/fragment_player.xml b/app/src/main/res/layout/fragment_player.xml
index 7bb3ff76..8f4f95ab 100644
--- a/app/src/main/res/layout/fragment_player.xml
+++ b/app/src/main/res/layout/fragment_player.xml
@@ -49,7 +49,6 @@
android:id="@+id/overlay_loading_skip_button"
android:text="@string/skip_loading"
-
app:rippleColor="?attr/colorPrimary"
android:textColor="?attr/textColor"
app:iconTint="?attr/textColor"
diff --git a/app/src/main/res/layout/fragment_result.xml b/app/src/main/res/layout/fragment_result.xml
index 87fee9e6..d0832dd1 100644
--- a/app/src/main/res/layout/fragment_result.xml
+++ b/app/src/main/res/layout/fragment_result.xml
@@ -389,10 +389,13 @@
-
+
+
+
+
+
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 6cc5f548..0c85c695 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -7,6 +7,7 @@
- @color/colorAccent
- @drawable/splash_background
- ?attr/bitDarkerGrayBackground
+ - ?attr/textColor
- @color/grayBackground