diff --git a/app/build.gradle b/app/build.gradle
index ed1679cd..a95c9e55 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -11,7 +11,7 @@ android {
defaultConfig {
applicationId "ani.dantotsu"
- minSdk 23
+ minSdk 21
targetSdk 34
versionCode((System.currentTimeMillis() / 60000).toInteger())
versionName "2.2.0"
diff --git a/app/src/main/java/ani/dantotsu/Functions.kt b/app/src/main/java/ani/dantotsu/Functions.kt
index 0c1c0664..3655aaec 100644
--- a/app/src/main/java/ani/dantotsu/Functions.kt
+++ b/app/src/main/java/ani/dantotsu/Functions.kt
@@ -244,21 +244,35 @@ fun isOnline(context: Context): Boolean {
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
return tryWith {
- val cap = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
- return@tryWith if (cap != null) {
- when {
- cap.hasTransport(TRANSPORT_BLUETOOTH) ||
- cap.hasTransport(TRANSPORT_CELLULAR) ||
- cap.hasTransport(TRANSPORT_ETHERNET) ||
- cap.hasTransport(TRANSPORT_LOWPAN) ||
- cap.hasTransport(TRANSPORT_USB) ||
- cap.hasTransport(TRANSPORT_VPN) ||
- cap.hasTransport(TRANSPORT_WIFI) ||
- cap.hasTransport(TRANSPORT_WIFI_AWARE) -> true
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ val cap = connectivityManager.getNetworkCapabilities(connectivityManager.activeNetwork)
+ return@tryWith if (cap != null) {
+ when {
+ cap.hasTransport(TRANSPORT_BLUETOOTH) ||
+ cap.hasTransport(TRANSPORT_CELLULAR) ||
+ cap.hasTransport(TRANSPORT_ETHERNET) ||
+ cap.hasTransport(TRANSPORT_LOWPAN) ||
+ cap.hasTransport(TRANSPORT_USB) ||
+ cap.hasTransport(TRANSPORT_VPN) ||
+ cap.hasTransport(TRANSPORT_WIFI) ||
+ cap.hasTransport(TRANSPORT_WIFI_AWARE) -> true
- else -> false
- }
- } else false
+ else -> false
+ }
+ } else false
+ } else {
+ @Suppress("DEPRECATION")
+ return@tryWith connectivityManager.activeNetworkInfo?.run {
+ type == ConnectivityManager.TYPE_BLUETOOTH ||
+ type == ConnectivityManager.TYPE_ETHERNET ||
+ type == ConnectivityManager.TYPE_MOBILE ||
+ type == ConnectivityManager.TYPE_MOBILE_DUN ||
+ type == ConnectivityManager.TYPE_MOBILE_HIPRI ||
+ type == ConnectivityManager.TYPE_WIFI ||
+ type == ConnectivityManager.TYPE_WIMAX ||
+ type == ConnectivityManager.TYPE_VPN
+ } ?: false
+ }
} ?: false
}
diff --git a/app/src/main/java/ani/dantotsu/MainActivity.kt b/app/src/main/java/ani/dantotsu/MainActivity.kt
index ad043b40..d692f9b7 100644
--- a/app/src/main/java/ani/dantotsu/MainActivity.kt
+++ b/app/src/main/java/ani/dantotsu/MainActivity.kt
@@ -275,7 +275,7 @@ class MainActivity : AppCompatActivity() {
binding.root.doOnAttach {
initActivity(this)
- window.navigationBarColor = getColor(android.R.color.transparent)
+ window.navigationBarColor = ContextCompat.getColor(this, android.R.color.transparent)
selectedOption = if (fragment != null) {
when (fragment) {
AnimeFragment::class.java.name -> 0
@@ -458,7 +458,7 @@ class MainActivity : AppCompatActivity() {
override fun onRestart() {
super.onRestart()
- window.navigationBarColor = getColor(android.R.color.transparent)
+ window.navigationBarColor = ContextCompat.getColor(this, android.R.color.transparent)
}
private val Int.toPx get() = TypedValue.applyDimension(
diff --git a/app/src/main/java/ani/dantotsu/download/anime/AnimeDownloaderService.kt b/app/src/main/java/ani/dantotsu/download/anime/AnimeDownloaderService.kt
index 8b19d9ab..c9128518 100644
--- a/app/src/main/java/ani/dantotsu/download/anime/AnimeDownloaderService.kt
+++ b/app/src/main/java/ani/dantotsu/download/anime/AnimeDownloaderService.kt
@@ -355,15 +355,13 @@ class AnimeDownloaderService : Service() {
return false
}
- @OptIn(DelicateCoroutinesApi::class)
private fun saveMediaInfo(task: AnimeDownloadTask) {
- GlobalScope.launch(Dispatchers.IO) {
+ CoroutineScope(Dispatchers.IO).launch {
val directory = File(
getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS),
"${DownloadsManager.animeLocation}/${task.title}"
)
val episodeDirectory = File(directory, task.episode)
- if (!directory.exists()) directory.mkdirs()
if (!episodeDirectory.exists()) episodeDirectory.mkdirs()
val file = File(directory, "media.json")
diff --git a/app/src/main/java/ani/dantotsu/media/novel/NovelResponseAdapter.kt b/app/src/main/java/ani/dantotsu/media/novel/NovelResponseAdapter.kt
index 9cbffc50..8da7c35b 100644
--- a/app/src/main/java/ani/dantotsu/media/novel/NovelResponseAdapter.kt
+++ b/app/src/main/java/ani/dantotsu/media/novel/NovelResponseAdapter.kt
@@ -5,6 +5,7 @@ import android.util.TypedValue
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
+import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import ani.dantotsu.R
import ani.dantotsu.databinding.ItemNovelResponseBinding
@@ -59,11 +60,11 @@ class NovelResponseAdapter(
}
if (binding.itemEpisodeFiller.text.contains("Downloading")) {
binding.itemEpisodeFiller.setTextColor(
- fragment.requireContext().getColor(android.R.color.holo_blue_light)
+ ContextCompat.getColor(fragment.requireContext(), android.R.color.holo_blue_light)
)
} else if (binding.itemEpisodeFiller.text.contains("Downloaded")) {
binding.itemEpisodeFiller.setTextColor(
- fragment.requireContext().getColor(android.R.color.holo_green_light)
+ ContextCompat.getColor(fragment.requireContext(), android.R.color.holo_green_light)
)
} else {
binding.itemEpisodeFiller.setTextColor(color)
diff --git a/app/src/main/java/ani/dantotsu/profile/ProfileFragment.kt b/app/src/main/java/ani/dantotsu/profile/ProfileFragment.kt
index b944bcb7..cb441cba 100644
--- a/app/src/main/java/ani/dantotsu/profile/ProfileFragment.kt
+++ b/app/src/main/java/ani/dantotsu/profile/ProfileFragment.kt
@@ -65,7 +65,7 @@ class ProfileFragment : Fragment() {
binding.profileUserBio.setInitialScale(1)
val styledHtml = getFullAniHTML(
user.about ?: "",
- activity.getColor(R.color.bg_opp)
+ ContextCompat.getColor(activity, R.color.bg_opp)
)
binding.profileUserBio.loadDataWithBaseURL(
null,
diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt
index 231443bb..280af466 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt
@@ -14,6 +14,7 @@ import android.os.PowerManager
import android.util.TypedValue
import androidx.annotation.AttrRes
import androidx.annotation.ColorInt
+import androidx.core.content.ContextCompat
import androidx.core.content.PermissionChecker
import androidx.core.content.getSystemService
import androidx.core.graphics.alpha
@@ -85,7 +86,7 @@ fun Context.getThemeColor(attr: Int): Int {
val tv = TypedValue()
return if (this.theme.resolveAttribute(attr, tv, true)) {
if (tv.resourceId != 0) {
- getColor(tv.resourceId)
+ ContextCompat.getColor(this, tv.resourceId)
} else {
tv.data
}
diff --git a/app/src/main/java/eu/kanade/tachiyomi/util/system/NotificationExtensions.kt b/app/src/main/java/eu/kanade/tachiyomi/util/system/NotificationExtensions.kt
index 67ce5a03..53049e4b 100644
--- a/app/src/main/java/eu/kanade/tachiyomi/util/system/NotificationExtensions.kt
+++ b/app/src/main/java/eu/kanade/tachiyomi/util/system/NotificationExtensions.kt
@@ -10,6 +10,7 @@ import androidx.core.app.NotificationChannelGroupCompat
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import androidx.core.app.NotificationManagerCompat.NotificationWithIdAndTag
+import androidx.core.content.ContextCompat
import androidx.core.content.PermissionChecker
import androidx.core.content.getSystemService
@@ -65,7 +66,7 @@ fun Context.notificationBuilder(
block: (NotificationCompat.Builder.() -> Unit)? = null
): NotificationCompat.Builder {
val builder = NotificationCompat.Builder(this, channelId)
- .setColor(getColor(android.R.color.holo_blue_dark))
+ .setColor(ContextCompat.getColor(this, android.R.color.holo_blue_dark))
if (block != null) {
builder.block()
}
diff --git a/app/src/main/res/values-v23/themes.xml b/app/src/main/res/values-v23/themes.xml
new file mode 100644
index 00000000..8729e48d
--- /dev/null
+++ b/app/src/main/res/values-v23/themes.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 87eb6f03..ececfa8f 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -29,10 +29,6 @@
-
-