Merge pull request #1268 from prathameshmm02/dev

Fixed Sleep timer
This commit is contained in:
Daksh P. Jain 2022-03-01 11:02:48 +05:30 committed by GitHub
commit 17237a4021
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
28 changed files with 82 additions and 102 deletions

View file

@ -108,7 +108,7 @@ dependencies {
implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version"
implementation "androidx.navigation:navigation-ui-ktx:$navigation_version"
def room_version = '2.4.1'
def room_version = '2.4.2'
implementation "androidx.room:room-runtime:$room_version"
implementation "androidx.room:room-ktx:$room_version"
kapt "androidx.room:room-compiler:$room_version"
@ -126,7 +126,7 @@ dependencies {
def retrofit_version = '2.9.0'
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"
implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.4'
implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.5'
def material_dialog_version = "3.3.0"
implementation "com.afollestad.material-dialogs:core:$material_dialog_version"
@ -146,7 +146,7 @@ dependencies {
implementation "io.insert-koin:koin-core:$koin_version"
implementation "io.insert-koin:koin-android:$koin_version"
def glide_version = '4.13.0'
def glide_version = '4.13.1'
implementation "com.github.bumptech.glide:glide:$glide_version"
kapt "com.github.bumptech.glide:compiler:$glide_version"
implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version"

View file

@ -5,6 +5,7 @@
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
@ -37,7 +38,6 @@
<activity
android:name=".activities.MainActivity"
android:exported="true"
android:label="@string/app_name"
android:theme="@style/SplashTheme"
android:launchMode="singleTop">
<intent-filter>
@ -171,7 +171,6 @@
<activity
android:name=".cast.ExpandedControlsActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.NoActionBar">

View file

@ -32,7 +32,6 @@ import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
import code.name.monkey.retromusic.glide.BlurTransformation
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper.Callback
@ -42,7 +41,6 @@ import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.repository.RealRepository
import code.name.monkey.retromusic.service.MusicService
import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@ -247,14 +245,9 @@ class DriveModeActivity : AbsMusicServiceActivity(), Callback {
binding.songText.text = song.artistName
GlideApp.with(this)
.asBitmapPalette()
.songCoverOptions(song)
.load(RetroGlideExtension.getSongModel(song))
.transform(BlurTransformation.Builder(this).build())
.into(object : RetroMusicColoredTarget(binding.image) {
override fun onColorReady(colors: MediaNotificationProcessor) {
}
})
.songCoverOptions(song).transform(BlurTransformation.Builder(this).build())
.into(binding.image)
}
override fun onUpdateProgressViews(progress: Int, total: Int) {

View file

@ -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>()
keyguardManager?.requestDismissKeyguard(this, null)

View file

@ -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()) {

View file

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

View file

@ -21,7 +21,6 @@ import androidx.fragment.app.FragmentActivity
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.helper.MusicPlayerRemote.isPlaying
import code.name.monkey.retromusic.helper.MusicPlayerRemote.playNextSong
@ -29,7 +28,6 @@ import code.name.monkey.retromusic.helper.MusicPlayerRemote.removeFromQueue
import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.ViewUtil
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
import com.h6ah4i.android.widget.advrecyclerview.draggable.DraggableItemAdapter
import com.h6ah4i.android.widget.advrecyclerview.draggable.ItemDraggableRange
import com.h6ah4i.android.widget.advrecyclerview.draggable.annotation.DraggableItemStateFlags
@ -79,13 +77,10 @@ class PlayingQueueAdapter(
if (holder.image == null) {
return
}
GlideApp.with(activity).asBitmapPalette().songCoverOptions(song)
GlideApp.with(activity)
.load(RetroGlideExtension.getSongModel(song))
.into(object : RetroMusicColoredTarget(holder.image!!) {
override fun onColorReady(colors: MediaNotificationProcessor) {
//setColors(colors, holder)
}
})
.songCoverOptions(song)
.into(holder.image!!)
}
fun swapDataSet(dataSet: List<Song>, position: Int) {

View file

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

View file

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

View file

@ -94,7 +94,7 @@ class SleepTimerDialog : DialogFragment() {
val nextSleepTimerElapsedTime = SystemClock.elapsedRealtime() + minutes * 60 * 1000
PreferenceUtil.nextSleepTimerElapsedRealTime = nextSleepTimerElapsedTime.toInt()
val am = requireContext().getSystemService<AlarmManager>()
am?.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, nextSleepTimerElapsedTime, pi)
am?.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, nextSleepTimerElapsedTime, pi)
Toast.makeText(
requireContext(),

View file

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

View file

@ -49,7 +49,6 @@ import code.name.monkey.retromusic.extensions.*
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
import code.name.monkey.retromusic.glide.SingleColorTarget
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.helper.SortOrder.AlbumSongSortOrder.Companion.SONG_A_Z
@ -68,7 +67,6 @@ import code.name.monkey.retromusic.util.MusicUtil
import code.name.monkey.retromusic.util.PreferenceUtil
import code.name.monkey.retromusic.util.RetroColorUtil
import code.name.monkey.retromusic.util.RetroUtil
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
import com.afollestad.materialcab.attached.AttachedCab
import com.afollestad.materialcab.attached.destroy
import com.afollestad.materialcab.attached.isActive
@ -307,7 +305,7 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det
detailsViewModel.getMoreAlbums(artist).observe(viewLifecycleOwner) {
moreAlbums(it)
}
GlideApp.with(requireContext()).asBitmapPalette().artistImageOptions(artist)
GlideApp.with(requireContext())
//.forceDownload(PreferenceUtil.isAllowedToDownloadMetadata())
.load(
RetroGlideExtension.getArtistModel(
@ -315,12 +313,10 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det
PreferenceUtil.isAllowedToDownloadMetadata()
)
)
.artistImageOptions(artist)
.dontAnimate()
.dontTransform()
.into(object : RetroMusicColoredTarget(binding.artistImage) {
override fun onColorReady(colors: MediaNotificationProcessor) {
}
})
.into(binding.artistImage)
}
private fun loadAlbumCover(album: Album) {

View file

@ -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<RelativeLayout>(R.id.statusBarShadow)?.hide()
}

View file

@ -181,14 +181,13 @@ class HomeFragment :
private fun loadProfile() {
binding.bannerImage?.let {
GlideApp.with(requireContext())
.asBitmap()
.profileBannerOptions(RetroGlideExtension.getBannerModel())
.load(RetroGlideExtension.getBannerModel())
.profileBannerOptions(RetroGlideExtension.getBannerModel())
.into(it)
}
GlideApp.with(requireActivity()).asBitmap()
.userProfileOptions(RetroGlideExtension.getUserModel())
GlideApp.with(requireActivity())
.load(RetroGlideExtension.getUserModel())
.userProfileOptions(RetroGlideExtension.getUserModel())
.into(binding.userImage)
}
@ -273,9 +272,8 @@ class HomeFragment :
}
}
GlideApp.with(this)
.asBitmap()
.songCoverOptions(songs[index])
.load(RetroGlideExtension.getSongModel(songs[index]))
.songCoverOptions(songs[index])
.into(imageView)
}
}

View file

@ -114,10 +114,9 @@ open class MiniPlayerFragment : AbsMusicServiceFragment(R.layout.fragment_mini_p
private fun updateSongCover() {
val song = MusicPlayerRemote.currentSong
GlideApp.with(requireContext())
.asBitmap()
.songCoverOptions(song)
.transition(RetroGlideExtension.getDefaultTransition())
.load(RetroGlideExtension.getSongModel(song))
.transition(RetroGlideExtension.getDefaultTransition())
.songCoverOptions(song)
.into(binding.image)
}

View file

@ -31,7 +31,6 @@ import code.name.monkey.retromusic.fragments.base.goToArtist
import code.name.monkey.retromusic.fragments.player.PlayerAlbumCoverFragment
import code.name.monkey.retromusic.glide.GlideApp
import code.name.monkey.retromusic.glide.RetroGlideExtension
import code.name.monkey.retromusic.glide.RetroMusicColoredTarget
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.model.Song
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
@ -134,12 +133,10 @@ class FullPlayerFragment : AbsPlayerFragment(R.layout.fragment_full) {
libraryViewModel.artist(MusicPlayerRemote.currentSong.artistId)
.observe(viewLifecycleOwner) { artist ->
if (artist.id != -1L) {
GlideApp.with(requireActivity()).asBitmapPalette().artistImageOptions(artist)
GlideApp.with(requireActivity())
.load(RetroGlideExtension.getArtistModel(artist))
.into(object : RetroMusicColoredTarget(binding.artistImage) {
override fun onColorReady(colors: MediaNotificationProcessor) {
}
})
.artistImageOptions(artist)
.into(binding.artistImage)
}
}
@ -151,17 +148,15 @@ class FullPlayerFragment : AbsPlayerFragment(R.layout.fragment_full) {
}
private fun updateLabel() {
(MusicPlayerRemote.playingQueue.size - 1).apply {
if (this == (MusicPlayerRemote.position)) {
binding.nextSongLabel.setText(R.string.last_song)
binding.nextSong.hide()
} else {
val title = MusicPlayerRemote.playingQueue[MusicPlayerRemote.position + 1].title
binding.nextSongLabel.setText(R.string.next_song)
binding.nextSong.apply {
text = title
show()
}
if ((MusicPlayerRemote.playingQueue.size - 1) == (MusicPlayerRemote.position)) {
binding.nextSongLabel.setText(R.string.last_song)
binding.nextSong.hide()
} else {
val title = MusicPlayerRemote.playingQueue[MusicPlayerRemote.position + 1].title
binding.nextSongLabel.setText(R.string.next_song)
binding.nextSong.apply {
text = title
show()
}
}
}

View file

@ -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<Vibrator>()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (VersionUtils.hasOreo()) {
v?.vibrate(VibrationEffect.createOneShot(10, VibrationEffect.DEFAULT_AMPLITUDE))
} else {
v?.vibrate(10)

View file

@ -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()
}

View file

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

View file

@ -1146,9 +1146,10 @@ class MusicService : MediaBrowserServiceCompat(),
if (isAlbumArtOnLockScreen) {
val screenSize = RetroUtil.getScreenSize(this@MusicService)
val request: RequestBuilder<Bitmap> =
GlideApp.with(this@MusicService).asBitmap().songCoverOptions(song).load(
getSongModel(song)
)
GlideApp.with(this@MusicService)
.asBitmap()
.songCoverOptions(song)
.load(getSongModel(song))
if (isBlurredAlbumArt) {
request.transform(BlurTransformation.Builder(this@MusicService).build())
}

View file

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

View file

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

View file

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

View file

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

View file

@ -8,10 +8,11 @@
<code.name.monkey.retromusic.views.TopAppBarLayout
android:id="@+id/appBarLayout"
style="?appBarLayoutStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="?appBarLayoutStyle"
android:fitsSystemWindows="true" />
android:fitsSystemWindows="true"
android:theme="@style/CenteredCheckBoxTheme" />
<code.name.monkey.retromusic.views.insets.InsetsRecyclerView
android:id="@+id/recycler_view"

View file

@ -28,8 +28,9 @@
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/checkbox"
style="@style/Widget.Material3.CompoundButton.CheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="match_parent"
android:background="@null"
android:clickable="false"
android:focusable="false"

View file

@ -125,7 +125,6 @@
<item name="cornerSize">0dp</item>
</style>
<style name="SplashTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="android:windowBackground">@drawable/splash</item>
<item name="android:statusBarColor">@android:color/transparent</item>
@ -135,6 +134,14 @@
<item name="android:popupBackground">@drawable/popup_background</item>
</style>
<style name="CenteredCheckBoxTheme">
<item name="checkboxStyle">@style/CheckBoxStyle</item>
</style>
<style name="CheckBoxStyle" parent="@style/Widget.AppCompat.CompoundButton.CheckBox">
<item name="android:gravity">center_vertical|end</item>
</style>
<style name="MaterialAlertDialogTheme" parent="ThemeOverlay.Material3.MaterialAlertDialog">
<item name="materialAlertDialogBodyTextStyle">
@style/AppTextAppearance.MaterialAlertDialog.Body
@ -180,7 +187,6 @@
<item name="android:paddingBottom">@dimen/button_padding_vertical</item>
</style>
<style name="BottomSheetStyle" parent="Widget.Material3.BottomSheet">
<item name="android:maxWidth">@empty</item>
</style>

View file

@ -14,7 +14,7 @@ buildscript {
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.1'
classpath 'com.android.tools.build:gradle:7.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_version"
}