diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/LockScreenActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/LockScreenActivity.kt index 9691ba676..2a1074814 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/LockScreenActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/LockScreenActivity.kt @@ -15,7 +15,6 @@ package code.name.monkey.retromusic.activities import android.app.KeyguardManager -import android.os.Build import android.os.Bundle import android.view.WindowManager import androidx.core.content.getSystemService @@ -84,7 +83,7 @@ class LockScreenActivity : AbsMusicServiceActivity() { @Suppress("Deprecation") private fun lockScreenInit() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { + if (VersionUtils.hasOreoMR1()) { setShowWhenLocked(true) val keyguardManager = getSystemService() keyguardManager?.requestDismissKeyguard(this, null) diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt index 9a63bd49c..9f69761ed 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt @@ -49,14 +49,17 @@ class PermissionActivity : AbsMusicServiceActivity() { binding.storagePermission.setButtonClick { requestPermissions() } - if (VersionUtils.hasMarshmallow()) binding.audioPermission.show() - binding.audioPermission.setButtonClick { - if (RingtoneManager.requiresDialog(this@PermissionActivity)) { - val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS) - intent.data = Uri.parse("package:" + applicationContext.packageName) - startActivity(intent) + if (VersionUtils.hasMarshmallow()) { + binding.audioPermission.show() + binding.audioPermission.setButtonClick { + if (RingtoneManager.requiresDialog(this@PermissionActivity)) { + val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS) + intent.data = Uri.parse("package:" + applicationContext.packageName) + startActivity(intent) + } } } + binding.finish.accentBackgroundColor() binding.finish.setOnClickListener { if (hasPermissions()) { diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsBaseActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsBaseActivity.kt index d84c84b9c..fa29c98fb 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsBaseActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsBaseActivity.kt @@ -20,7 +20,6 @@ import android.content.pm.PackageManager import android.graphics.Rect import android.media.AudioManager import android.net.Uri -import android.os.Build import android.os.Bundle import android.provider.Settings import android.view.KeyEvent @@ -31,6 +30,7 @@ import android.widget.EditText import androidx.core.app.ActivityCompat import androidx.core.content.getSystemService import code.name.monkey.appthemehelper.ThemeStore +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import com.google.android.material.snackbar.Snackbar @@ -62,19 +62,12 @@ abstract class AbsBaseActivity : AbsThemeActivity() { permissionDeniedMessage = null } - override fun onPostCreate(savedInstanceState: Bundle?) { - super.onPostCreate(savedInstanceState) - if (!hasPermissions()) { - // requestPermissions() - } - } - override fun onResume() { super.onResume() val hasPermissions = hasPermissions() if (hasPermissions != hadPermissions) { hadPermissions = hasPermissions - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (VersionUtils.hasMarshmallow()) { onHasPermissionsChanged(hasPermissions) } } @@ -97,13 +90,13 @@ abstract class AbsBaseActivity : AbsThemeActivity() { } protected open fun requestPermissions() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (VersionUtils.hasMarshmallow()) { requestPermissions(permissions, PERMISSION_REQUEST) } } protected fun hasPermissions(): Boolean { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (VersionUtils.hasMarshmallow()) { for (permission in permissions) { if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) { return false diff --git a/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt b/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt index 48f3a9dc1..d74fae63f 100644 --- a/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt +++ b/app/src/main/java/code/name/monkey/retromusic/appwidgets/base/BaseAppWidget.kt @@ -24,7 +24,6 @@ import android.content.res.Resources import android.graphics.* import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable -import android.os.Build import android.text.TextUtils import android.widget.RemoteViews import androidx.core.content.ContextCompat @@ -101,7 +100,7 @@ abstract class BaseAppWidget : AppWidgetProvider() { ): PendingIntent { val intent = Intent(action) intent.component = serviceName - return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + return if (VersionUtils.hasOreo()) { PendingIntent.getForegroundService(context, 0, intent, PendingIntent.FLAG_IMMUTABLE) } else { PendingIntent.getService( diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/BlacklistFolderChooserDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/BlacklistFolderChooserDialog.kt index 5e9c473cf..738269cb3 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/BlacklistFolderChooserDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/BlacklistFolderChooserDialog.kt @@ -3,11 +3,11 @@ package code.name.monkey.retromusic.dialogs import android.Manifest import android.app.Dialog import android.content.pm.PackageManager -import android.os.Build import android.os.Bundle import android.os.Environment import androidx.core.app.ActivityCompat import androidx.fragment.app.DialogFragment +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.extensions.materialDialog import com.afollestad.materialdialogs.MaterialDialog @@ -49,7 +49,7 @@ class BlacklistFolderChooserDialog : DialogFragment() { override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { var mSavedInstanceState = savedInstanceState - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M + if (VersionUtils.hasMarshmallow() && ActivityCompat.checkSelfPermission( requireActivity(), Manifest.permission.READ_EXTERNAL_STORAGE ) diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt index 86bec60d5..60b90f6a4 100644 --- a/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ActivityThemeExtensions.kt @@ -45,7 +45,7 @@ fun AppCompatActivity.setImmersiveFullscreen() { WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE hide(WindowInsetsCompat.Type.systemBars()) } - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + if (VersionUtils.hasP()) { window.attributes.layoutInDisplayCutoutMode = WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES } @@ -100,7 +100,7 @@ fun FragmentActivity.setTaskDescriptionColor(color: Int) { // Task description requires fully opaque color colorFinal = ColorUtil.stripAlpha(colorFinal) // Sets color of entry in the system recents page - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + if (VersionUtils.hasP()) { setTaskDescription( ActivityManager.TaskDescription( title as String?, @@ -196,7 +196,7 @@ fun AppCompatActivity.setStatusBarColorAuto() { } fun AppCompatActivity.setNavigationBarColor(color: Int) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (VersionUtils.hasOreo()) { window.navigationBarColor = color } else { window.navigationBarColor = ColorUtil.darkenColor(color) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerFragment.kt index 678554246..3dd8fd76a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/base/AbsPlayerFragment.kt @@ -22,7 +22,6 @@ import android.content.Intent import android.graphics.drawable.AnimatedVectorDrawable import android.graphics.drawable.Drawable import android.media.MediaMetadataRetriever -import android.os.Build import android.os.Bundle import android.provider.MediaStore import android.view.GestureDetector @@ -297,7 +296,7 @@ abstract class AbsPlayerFragment(@LayoutRes layout: Int) : AbsMainActivityFragme playerAlbumCoverFragment = whichFragment(R.id.playerAlbumCoverFragment) playerAlbumCoverFragment?.setCallbacks(this) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) + if (VersionUtils.hasMarshmallow()) view.findViewById(R.id.statusBarShadow)?.hide() } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlayerFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlayerFragment.kt index 92ac39bb2..9ac50de1b 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlayerFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/tiny/TinyPlayerFragment.kt @@ -26,6 +26,7 @@ import android.view.animation.LinearInterpolator import androidx.appcompat.widget.Toolbar import androidx.core.content.getSystemService import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.databinding.FragmentTinyPlayerBinding import code.name.monkey.retromusic.extensions.drawAboveSystemBars @@ -283,7 +284,7 @@ class TinyPlayerFragment : AbsPlayerFragment(R.layout.fragment_tiny_player), @Suppress("Deprecation") private fun vibrate() { val v = requireContext().getSystemService() - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (VersionUtils.hasOreo()) { v?.vibrate(VibrationEffect.createOneShot(10, VibrationEffect.DEFAULT_AMPLITUDE)) } else { v?.vibrate(10) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/ThemeSettingsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/ThemeSettingsFragment.kt index cf81a339a..b5ec3f5bd 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/ThemeSettingsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/ThemeSettingsFragment.kt @@ -15,7 +15,6 @@ package code.name.monkey.retromusic.fragments.settings import android.annotation.SuppressLint -import android.os.Build import android.os.Bundle import androidx.preference.Preference import androidx.preference.TwoStatePreference @@ -48,7 +47,7 @@ class ThemeSettingsFragment : AbsSettingsFragment() { setSummary(it, newValue) ThemeStore.markChanged(requireContext()) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) { + if (VersionUtils.hasNougatMR()) { requireActivity().setTheme(PreferenceUtil.themeResFromPrefValue(theme)) DynamicShortcutManager(requireContext()).updateDynamicShortcuts() } @@ -83,7 +82,7 @@ class ThemeSettingsFragment : AbsSettingsFragment() { return@setOnPreferenceChangeListener false } ThemeStore.markChanged(requireContext()) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) { + if (VersionUtils.hasNougatMR()) { requireActivity().setTheme(PreferenceUtil.themeResFromPrefValue("black")) DynamicShortcutManager(requireContext()).updateDynamicShortcuts() } diff --git a/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt b/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt index 0814f763d..bfbfe62ab 100644 --- a/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt +++ b/app/src/main/java/code/name/monkey/retromusic/repository/SongRepository.kt @@ -21,6 +21,7 @@ import android.os.Environment import android.provider.MediaStore import android.provider.MediaStore.Audio.AudioColumns import android.provider.MediaStore.Audio.Media +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.Constants.IS_MUSIC import code.name.monkey.retromusic.Constants.baseProjection import code.name.monkey.retromusic.extensions.getInt @@ -188,7 +189,7 @@ class RealSongRepository(private val context: Context) : SongRepository { selectionFinal = selectionFinal + " AND " + Media.DURATION + ">= " + (PreferenceUtil.filterLength * 1000) } - val uri = if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) { + val uri = if (VersionUtils.hasQ()) { Media.getContentUri(MediaStore.VOLUME_EXTERNAL) } else { Media.EXTERNAL_CONTENT_URI diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationClassic.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationClassic.kt index 23eee5435..72cd280f8 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationClassic.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationClassic.kt @@ -23,7 +23,6 @@ import android.content.Intent import android.graphics.Bitmap import android.graphics.Color import android.graphics.drawable.Drawable -import android.os.Build import android.widget.RemoteViews import androidx.core.app.NotificationCompat import code.name.monkey.appthemehelper.util.ATHUtil.resolveColor @@ -324,7 +323,7 @@ class PlayingNotificationClassic( context: Context, notificationManager: NotificationManager ): PlayingNotification { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (VersionUtils.hasOreo()) { createNotificationChannel(context, notificationManager) } return PlayingNotificationClassic(context) diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt index 7154190e1..16d925a88 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt @@ -232,7 +232,7 @@ class PlayingNotificationImpl24( notificationManager: NotificationManager, mediaSession: MediaSessionCompat ): PlayingNotification { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + if (VersionUtils.hasOreo()) { createNotificationChannel(context, notificationManager) } return PlayingNotificationImpl24(context, mediaSession.sessionToken) diff --git a/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java index 8005ab2b4..b51c1343c 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java +++ b/app/src/main/java/code/name/monkey/retromusic/util/RetroUtil.java @@ -49,6 +49,7 @@ import java.util.Collections; import java.util.List; import code.name.monkey.appthemehelper.util.TintHelper; +import code.name.monkey.appthemehelper.util.VersionUtils; import code.name.monkey.retromusic.App; public class RetroUtil { diff --git a/app/src/main/java/code/name/monkey/retromusic/util/RingtoneManager.kt b/app/src/main/java/code/name/monkey/retromusic/util/RingtoneManager.kt index 2dd05bded..fb58d4fa8 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/RingtoneManager.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/RingtoneManager.kt @@ -22,6 +22,8 @@ import android.provider.BaseColumns import android.provider.MediaStore import android.provider.Settings import android.widget.Toast +import androidx.annotation.RequiresApi +import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.model.Song import code.name.monkey.retromusic.util.MusicUtil.getSongFileUri @@ -55,7 +57,7 @@ class RingtoneManager(val context: Context) { companion object { fun requiresDialog(context: Context): Boolean { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + if (VersionUtils.hasMarshmallow()) { if (!Settings.System.canWrite(context)) { return true }