diff --git a/app/src/main/java/com/github/libretube/dialogs/DownloadDialog.kt b/app/src/main/java/com/github/libretube/dialogs/DownloadDialog.kt
index 5dbf63ea7..4f2ed94a1 100644
--- a/app/src/main/java/com/github/libretube/dialogs/DownloadDialog.kt
+++ b/app/src/main/java/com/github/libretube/dialogs/DownloadDialog.kt
@@ -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())
diff --git a/app/src/main/java/com/github/libretube/dialogs/UpdateDialog.kt b/app/src/main/java/com/github/libretube/dialogs/UpdateDialog.kt
index 4ddeceea7..715400bdd 100644
--- a/app/src/main/java/com/github/libretube/dialogs/UpdateDialog.kt
+++ b/app/src/main/java/com/github/libretube/dialogs/UpdateDialog.kt
@@ -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)
diff --git a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt
index b6f4b282e..908073fa7 100644
--- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt
+++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt
@@ -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() {
diff --git a/app/src/main/java/com/github/libretube/preferences/InstanceSettings.kt b/app/src/main/java/com/github/libretube/preferences/InstanceSettings.kt
index 4b233d57d..12c2a9381 100644
--- a/app/src/main/java/com/github/libretube/preferences/InstanceSettings.kt
+++ b/app/src/main/java/com/github/libretube/preferences/InstanceSettings.kt
@@ -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
}
diff --git a/app/src/main/java/com/github/libretube/services/BackgroundMode.kt b/app/src/main/java/com/github/libretube/services/BackgroundMode.kt
index 0a70a285e..c22a889e1 100644
--- a/app/src/main/java/com/github/libretube/services/BackgroundMode.kt
+++ b/app/src/main/java/com/github/libretube/services/BackgroundMode.kt
@@ -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)
}
}
diff --git a/app/src/main/java/com/github/libretube/services/UpdateService.kt b/app/src/main/java/com/github/libretube/services/UpdateService.kt
index 47d3c3888..5c34cf38b 100644
--- a/app/src/main/java/com/github/libretube/services/UpdateService.kt
+++ b/app/src/main/java/com/github/libretube/services/UpdateService.kt
@@ -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()
+ }
}
}
}
diff --git a/app/src/main/java/com/github/libretube/util/PermissionHelper.kt b/app/src/main/java/com/github/libretube/util/PermissionHelper.kt
index 562423377..3670a2d81 100644
--- a/app/src/main/java/com/github/libretube/util/PermissionHelper.kt
+++ b/app/src/main/java/com/github/libretube/util/PermissionHelper.kt
@@ -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
diff --git a/app/src/main/java/com/github/libretube/util/ResettableLazy.kt b/app/src/main/java/com/github/libretube/util/ResettableLazy.kt
index 432dff009..129e27de6 100644
--- a/app/src/main/java/com/github/libretube/util/ResettableLazy.kt
+++ b/app/src/main/java/com/github/libretube/util/ResettableLazy.kt
@@ -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
diff --git a/app/src/main/java/com/github/libretube/util/ThemeHelper.kt b/app/src/main/java/com/github/libretube/util/ThemeHelper.kt
index 4637f57ea..f3e48bba4 100644
--- a/app/src/main/java/com/github/libretube/util/ThemeHelper.kt
+++ b/app/src/main/java/com/github/libretube/util/ThemeHelper.kt
@@ -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
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index d6bfb73e3..f89599e88 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -289,7 +289,7 @@
No results.
Error
Copied
- Downloaded
+ Download succeeded
Share with start time
Export Subscriptions