mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 23:40:33 +05:30
fix crash
This commit is contained in:
parent
1cb0c8f7b5
commit
a39b03e778
@ -7,7 +7,6 @@ import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.ArrayAdapter
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.view.size
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
@ -38,7 +37,7 @@ class DownloadDialog : DialogFragment() {
|
||||
|
||||
fetchAvailableSources()
|
||||
|
||||
PermissionHelper.requestReadWrite(activity as AppCompatActivity)
|
||||
PermissionHelper.requestReadWrite(requireActivity())
|
||||
|
||||
binding.title.text = ThemeHelper.getStyledAppName(requireContext())
|
||||
|
||||
|
@ -6,7 +6,6 @@ import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.services.UpdateService
|
||||
@ -28,7 +27,7 @@ class UpdateDialog(
|
||||
val downloadUrl = getDownloadUrl(updateInfo)
|
||||
Log.i("downloadUrl", downloadUrl.toString())
|
||||
if (downloadUrl != null) {
|
||||
PermissionHelper.requestReadWrite(activity as AppCompatActivity)
|
||||
PermissionHelper.requestReadWrite(requireActivity())
|
||||
val intent = Intent(context, UpdateService::class.java)
|
||||
intent.putExtra("downloadUrl", downloadUrl)
|
||||
context?.startService(intent)
|
||||
|
@ -88,7 +88,6 @@ import com.google.android.exoplayer2.upstream.DefaultHttpDataSource
|
||||
import com.google.android.exoplayer2.util.RepeatModeUtil
|
||||
import com.google.android.exoplayer2.video.VideoSize
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import kotlin.math.abs
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@ -96,6 +95,7 @@ import org.chromium.net.CronetEngine
|
||||
import retrofit2.HttpException
|
||||
import java.io.IOException
|
||||
import java.util.concurrent.Executors
|
||||
import kotlin.math.abs
|
||||
|
||||
class PlayerFragment : BaseFragment() {
|
||||
|
||||
|
@ -6,7 +6,6 @@ import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.ListPreference
|
||||
@ -142,11 +141,11 @@ class InstanceSettings : MaterialPreferenceFragment() {
|
||||
importSubscriptions?.setOnPreferenceClickListener {
|
||||
// check StorageAccess
|
||||
val accessGranted =
|
||||
PermissionHelper.isStoragePermissionGranted(activity as AppCompatActivity)
|
||||
PermissionHelper.isStoragePermissionGranted(requireActivity())
|
||||
// import subscriptions
|
||||
if (accessGranted) getContent.launch("*/*")
|
||||
// request permissions if not granted
|
||||
else PermissionHelper.requestReadWrite(activity as AppCompatActivity)
|
||||
else PermissionHelper.requestReadWrite(requireActivity())
|
||||
true
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,7 @@ import android.os.Build
|
||||
import android.os.Handler
|
||||
import android.os.IBinder
|
||||
import android.os.Looper
|
||||
import android.widget.Toast
|
||||
import com.fasterxml.jackson.databind.ObjectMapper
|
||||
import com.github.libretube.BACKGROUND_CHANNEL_ID
|
||||
import com.github.libretube.PLAYER_NOTIFICATION_ID
|
||||
@ -269,6 +270,18 @@ class BackgroundMode : Service() {
|
||||
val segmentEnd = (segment.segment[1] * 1000f).toLong()
|
||||
val currentPosition = player?.currentPosition
|
||||
if (currentPosition in segmentStart until segmentEnd) {
|
||||
if (PreferenceHelper.getBoolean(
|
||||
"sb_notifications_key",
|
||||
true
|
||||
)
|
||||
) {
|
||||
try {
|
||||
Toast.makeText(this, R.string.segment_skipped, Toast.LENGTH_SHORT)
|
||||
.show()
|
||||
} catch (e: Exception) {
|
||||
// Do nothing.
|
||||
}
|
||||
}
|
||||
player?.seekTo(segmentEnd)
|
||||
}
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ import android.content.IntentFilter
|
||||
import android.net.Uri
|
||||
import android.os.Environment
|
||||
import android.os.IBinder
|
||||
import android.widget.Toast
|
||||
import com.github.libretube.R
|
||||
import java.io.File
|
||||
|
||||
@ -64,7 +65,15 @@ class UpdateService : Service() {
|
||||
Uri.fromFile(file),
|
||||
downloadManager.getMimeTypeForDownloadedFile(downloadId)
|
||||
)
|
||||
startActivity(installIntent)
|
||||
try {
|
||||
startActivity(installIntent)
|
||||
} catch (e: Exception) {
|
||||
Toast.makeText(
|
||||
context,
|
||||
R.string.downloadsucceeded,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,14 +1,14 @@
|
||||
package com.github.libretube.util
|
||||
|
||||
import android.Manifest
|
||||
import android.app.Activity
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import android.os.Environment
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.app.ActivityCompat
|
||||
|
||||
object PermissionHelper {
|
||||
fun requestReadWrite(activity: AppCompatActivity): Boolean {
|
||||
fun requestReadWrite(activity: Activity): Boolean {
|
||||
// request storage permissions if not granted yet
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
if (!Environment.isExternalStorageManager()) {
|
||||
@ -46,7 +46,7 @@ object PermissionHelper {
|
||||
return true
|
||||
}
|
||||
|
||||
fun isStoragePermissionGranted(activity: AppCompatActivity): Boolean {
|
||||
fun isStoragePermissionGranted(activity: Activity): Boolean {
|
||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
if (activity.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
== PackageManager.PERMISSION_GRANTED
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.github.libretube.util
|
||||
|
||||
import kotlin.reflect.KProperty
|
||||
import java.util.*
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
class ResettableLazyManager {
|
||||
// we synchronize to make sure the timing of a reset() call and new inits do not collide
|
||||
|
@ -100,7 +100,7 @@ object ThemeHelper {
|
||||
fun restartMainActivity(context: Context) {
|
||||
// kill player notification
|
||||
val nManager = context
|
||||
.getSystemService(AppCompatActivity.NOTIFICATION_SERVICE) as NotificationManager
|
||||
.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||
nManager.cancelAll()
|
||||
// start a new Intent of the app
|
||||
val pm: PackageManager = context.packageManager
|
||||
|
@ -289,7 +289,7 @@
|
||||
<string name="no_search_result">No results.</string>
|
||||
<string name="error_occurred">Error</string>
|
||||
<string name="copied">Copied</string>
|
||||
<string name="downloadsucceeded">Downloaded</string>
|
||||
<string name="downloadsucceeded">Download succeeded</string>
|
||||
<string name="share_with_time">Share with start time</string>
|
||||
<string name="export_subscriptions">Export Subscriptions</string>
|
||||
</resources>
|
||||
|
Loading…
x
Reference in New Issue
Block a user