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 @@ - -