commit
17237a4021
28 changed files with 82 additions and 102 deletions
|
@ -108,7 +108,7 @@ dependencies {
|
||||||
implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version"
|
implementation "androidx.navigation:navigation-fragment-ktx:$navigation_version"
|
||||||
implementation "androidx.navigation:navigation-ui-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-runtime:$room_version"
|
||||||
implementation "androidx.room:room-ktx:$room_version"
|
implementation "androidx.room:room-ktx:$room_version"
|
||||||
kapt "androidx.room:room-compiler:$room_version"
|
kapt "androidx.room:room-compiler:$room_version"
|
||||||
|
@ -126,7 +126,7 @@ dependencies {
|
||||||
def retrofit_version = '2.9.0'
|
def retrofit_version = '2.9.0'
|
||||||
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
|
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
|
||||||
implementation "com.squareup.retrofit2:converter-gson:$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"
|
def material_dialog_version = "3.3.0"
|
||||||
implementation "com.afollestad.material-dialogs:core:$material_dialog_version"
|
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-core:$koin_version"
|
||||||
implementation "io.insert-koin:koin-android:$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"
|
implementation "com.github.bumptech.glide:glide:$glide_version"
|
||||||
kapt "com.github.bumptech.glide:compiler:$glide_version"
|
kapt "com.github.bumptech.glide:compiler:$glide_version"
|
||||||
implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version"
|
implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version"
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||||
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
|
<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.VIBRATE" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
@ -37,7 +38,6 @@
|
||||||
<activity
|
<activity
|
||||||
android:name=".activities.MainActivity"
|
android:name=".activities.MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:label="@string/app_name"
|
|
||||||
android:theme="@style/SplashTheme"
|
android:theme="@style/SplashTheme"
|
||||||
android:launchMode="singleTop">
|
android:launchMode="singleTop">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
@ -171,7 +171,6 @@
|
||||||
<activity
|
<activity
|
||||||
android:name=".cast.ExpandedControlsActivity"
|
android:name=".cast.ExpandedControlsActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:label="@string/app_name"
|
|
||||||
android:launchMode="singleTask"
|
android:launchMode="singleTask"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
android:theme="@style/Theme.AppCompat.NoActionBar">
|
android:theme="@style/Theme.AppCompat.NoActionBar">
|
||||||
|
|
|
@ -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.BlurTransformation
|
||||||
import code.name.monkey.retromusic.glide.GlideApp
|
import code.name.monkey.retromusic.glide.GlideApp
|
||||||
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
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
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper.Callback
|
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.repository.RealRepository
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.util.MusicUtil
|
import code.name.monkey.retromusic.util.MusicUtil
|
||||||
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
|
@ -247,14 +245,9 @@ class DriveModeActivity : AbsMusicServiceActivity(), Callback {
|
||||||
binding.songText.text = song.artistName
|
binding.songText.text = song.artistName
|
||||||
|
|
||||||
GlideApp.with(this)
|
GlideApp.with(this)
|
||||||
.asBitmapPalette()
|
|
||||||
.songCoverOptions(song)
|
|
||||||
.load(RetroGlideExtension.getSongModel(song))
|
.load(RetroGlideExtension.getSongModel(song))
|
||||||
.transform(BlurTransformation.Builder(this).build())
|
.songCoverOptions(song).transform(BlurTransformation.Builder(this).build())
|
||||||
.into(object : RetroMusicColoredTarget(binding.image) {
|
.into(binding.image)
|
||||||
override fun onColorReady(colors: MediaNotificationProcessor) {
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onUpdateProgressViews(progress: Int, total: Int) {
|
override fun onUpdateProgressViews(progress: Int, total: Int) {
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
package code.name.monkey.retromusic.activities
|
package code.name.monkey.retromusic.activities
|
||||||
|
|
||||||
import android.app.KeyguardManager
|
import android.app.KeyguardManager
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
|
@ -84,7 +83,7 @@ class LockScreenActivity : AbsMusicServiceActivity() {
|
||||||
|
|
||||||
@Suppress("Deprecation")
|
@Suppress("Deprecation")
|
||||||
private fun lockScreenInit() {
|
private fun lockScreenInit() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
|
if (VersionUtils.hasOreoMR1()) {
|
||||||
setShowWhenLocked(true)
|
setShowWhenLocked(true)
|
||||||
val keyguardManager = getSystemService<KeyguardManager>()
|
val keyguardManager = getSystemService<KeyguardManager>()
|
||||||
keyguardManager?.requestDismissKeyguard(this, null)
|
keyguardManager?.requestDismissKeyguard(this, null)
|
||||||
|
|
|
@ -49,14 +49,17 @@ class PermissionActivity : AbsMusicServiceActivity() {
|
||||||
binding.storagePermission.setButtonClick {
|
binding.storagePermission.setButtonClick {
|
||||||
requestPermissions()
|
requestPermissions()
|
||||||
}
|
}
|
||||||
if (VersionUtils.hasMarshmallow()) binding.audioPermission.show()
|
if (VersionUtils.hasMarshmallow()) {
|
||||||
binding.audioPermission.setButtonClick {
|
binding.audioPermission.show()
|
||||||
if (RingtoneManager.requiresDialog(this@PermissionActivity)) {
|
binding.audioPermission.setButtonClick {
|
||||||
val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
|
if (RingtoneManager.requiresDialog(this@PermissionActivity)) {
|
||||||
intent.data = Uri.parse("package:" + applicationContext.packageName)
|
val intent = Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS)
|
||||||
startActivity(intent)
|
intent.data = Uri.parse("package:" + applicationContext.packageName)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.finish.accentBackgroundColor()
|
binding.finish.accentBackgroundColor()
|
||||||
binding.finish.setOnClickListener {
|
binding.finish.setOnClickListener {
|
||||||
if (hasPermissions()) {
|
if (hasPermissions()) {
|
||||||
|
|
|
@ -20,7 +20,6 @@ import android.content.pm.PackageManager
|
||||||
import android.graphics.Rect
|
import android.graphics.Rect
|
||||||
import android.media.AudioManager
|
import android.media.AudioManager
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
|
@ -31,6 +30,7 @@ import android.widget.EditText
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import code.name.monkey.appthemehelper.ThemeStore
|
import code.name.monkey.appthemehelper.ThemeStore
|
||||||
|
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
|
|
||||||
|
@ -62,19 +62,12 @@ abstract class AbsBaseActivity : AbsThemeActivity() {
|
||||||
permissionDeniedMessage = null
|
permissionDeniedMessage = null
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPostCreate(savedInstanceState: Bundle?) {
|
|
||||||
super.onPostCreate(savedInstanceState)
|
|
||||||
if (!hasPermissions()) {
|
|
||||||
// requestPermissions()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
val hasPermissions = hasPermissions()
|
val hasPermissions = hasPermissions()
|
||||||
if (hasPermissions != hadPermissions) {
|
if (hasPermissions != hadPermissions) {
|
||||||
hadPermissions = hasPermissions
|
hadPermissions = hasPermissions
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (VersionUtils.hasMarshmallow()) {
|
||||||
onHasPermissionsChanged(hasPermissions)
|
onHasPermissionsChanged(hasPermissions)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,13 +90,13 @@ abstract class AbsBaseActivity : AbsThemeActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun requestPermissions() {
|
protected open fun requestPermissions() {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (VersionUtils.hasMarshmallow()) {
|
||||||
requestPermissions(permissions, PERMISSION_REQUEST)
|
requestPermissions(permissions, PERMISSION_REQUEST)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected fun hasPermissions(): Boolean {
|
protected fun hasPermissions(): Boolean {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (VersionUtils.hasMarshmallow()) {
|
||||||
for (permission in permissions) {
|
for (permission in permissions) {
|
||||||
if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
|
if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
|
||||||
return false
|
return false
|
||||||
|
|
|
@ -21,7 +21,6 @@ import androidx.fragment.app.FragmentActivity
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.glide.GlideApp
|
import code.name.monkey.retromusic.glide.GlideApp
|
||||||
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
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
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote.isPlaying
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote.isPlaying
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote.playNextSong
|
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.model.Song
|
||||||
import code.name.monkey.retromusic.util.MusicUtil
|
import code.name.monkey.retromusic.util.MusicUtil
|
||||||
import code.name.monkey.retromusic.util.ViewUtil
|
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.DraggableItemAdapter
|
||||||
import com.h6ah4i.android.widget.advrecyclerview.draggable.ItemDraggableRange
|
import com.h6ah4i.android.widget.advrecyclerview.draggable.ItemDraggableRange
|
||||||
import com.h6ah4i.android.widget.advrecyclerview.draggable.annotation.DraggableItemStateFlags
|
import com.h6ah4i.android.widget.advrecyclerview.draggable.annotation.DraggableItemStateFlags
|
||||||
|
@ -79,13 +77,10 @@ class PlayingQueueAdapter(
|
||||||
if (holder.image == null) {
|
if (holder.image == null) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
GlideApp.with(activity).asBitmapPalette().songCoverOptions(song)
|
GlideApp.with(activity)
|
||||||
.load(RetroGlideExtension.getSongModel(song))
|
.load(RetroGlideExtension.getSongModel(song))
|
||||||
.into(object : RetroMusicColoredTarget(holder.image!!) {
|
.songCoverOptions(song)
|
||||||
override fun onColorReady(colors: MediaNotificationProcessor) {
|
.into(holder.image!!)
|
||||||
//setColors(colors, holder)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun swapDataSet(dataSet: List<Song>, position: Int) {
|
fun swapDataSet(dataSet: List<Song>, position: Int) {
|
||||||
|
|
|
@ -24,7 +24,6 @@ import android.content.res.Resources
|
||||||
import android.graphics.*
|
import android.graphics.*
|
||||||
import android.graphics.drawable.BitmapDrawable
|
import android.graphics.drawable.BitmapDrawable
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.os.Build
|
|
||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import android.widget.RemoteViews
|
import android.widget.RemoteViews
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
|
@ -101,7 +100,7 @@ abstract class BaseAppWidget : AppWidgetProvider() {
|
||||||
): PendingIntent {
|
): PendingIntent {
|
||||||
val intent = Intent(action)
|
val intent = Intent(action)
|
||||||
intent.component = serviceName
|
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)
|
PendingIntent.getForegroundService(context, 0, intent, PendingIntent.FLAG_IMMUTABLE)
|
||||||
} else {
|
} else {
|
||||||
PendingIntent.getService(
|
PendingIntent.getService(
|
||||||
|
|
|
@ -3,11 +3,11 @@ package code.name.monkey.retromusic.dialogs
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Environment
|
import android.os.Environment
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
|
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.extensions.materialDialog
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
|
@ -49,7 +49,7 @@ class BlacklistFolderChooserDialog : DialogFragment() {
|
||||||
|
|
||||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||||
var mSavedInstanceState = savedInstanceState
|
var mSavedInstanceState = savedInstanceState
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
if (VersionUtils.hasMarshmallow()
|
||||||
&& ActivityCompat.checkSelfPermission(
|
&& ActivityCompat.checkSelfPermission(
|
||||||
requireActivity(), Manifest.permission.READ_EXTERNAL_STORAGE
|
requireActivity(), Manifest.permission.READ_EXTERNAL_STORAGE
|
||||||
)
|
)
|
||||||
|
|
|
@ -94,7 +94,7 @@ class SleepTimerDialog : DialogFragment() {
|
||||||
val nextSleepTimerElapsedTime = SystemClock.elapsedRealtime() + minutes * 60 * 1000
|
val nextSleepTimerElapsedTime = SystemClock.elapsedRealtime() + minutes * 60 * 1000
|
||||||
PreferenceUtil.nextSleepTimerElapsedRealTime = nextSleepTimerElapsedTime.toInt()
|
PreferenceUtil.nextSleepTimerElapsedRealTime = nextSleepTimerElapsedTime.toInt()
|
||||||
val am = requireContext().getSystemService<AlarmManager>()
|
val am = requireContext().getSystemService<AlarmManager>()
|
||||||
am?.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, nextSleepTimerElapsedTime, pi)
|
am?.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, nextSleepTimerElapsedTime, pi)
|
||||||
|
|
||||||
Toast.makeText(
|
Toast.makeText(
|
||||||
requireContext(),
|
requireContext(),
|
||||||
|
|
|
@ -45,7 +45,7 @@ fun AppCompatActivity.setImmersiveFullscreen() {
|
||||||
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
||||||
hide(WindowInsetsCompat.Type.systemBars())
|
hide(WindowInsetsCompat.Type.systemBars())
|
||||||
}
|
}
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
if (VersionUtils.hasP()) {
|
||||||
window.attributes.layoutInDisplayCutoutMode =
|
window.attributes.layoutInDisplayCutoutMode =
|
||||||
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
|
WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ fun FragmentActivity.setTaskDescriptionColor(color: Int) {
|
||||||
// Task description requires fully opaque color
|
// Task description requires fully opaque color
|
||||||
colorFinal = ColorUtil.stripAlpha(colorFinal)
|
colorFinal = ColorUtil.stripAlpha(colorFinal)
|
||||||
// Sets color of entry in the system recents page
|
// Sets color of entry in the system recents page
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
|
if (VersionUtils.hasP()) {
|
||||||
setTaskDescription(
|
setTaskDescription(
|
||||||
ActivityManager.TaskDescription(
|
ActivityManager.TaskDescription(
|
||||||
title as String?,
|
title as String?,
|
||||||
|
@ -196,7 +196,7 @@ fun AppCompatActivity.setStatusBarColorAuto() {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun AppCompatActivity.setNavigationBarColor(color: Int) {
|
fun AppCompatActivity.setNavigationBarColor(color: Int) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (VersionUtils.hasOreo()) {
|
||||||
window.navigationBarColor = color
|
window.navigationBarColor = color
|
||||||
} else {
|
} else {
|
||||||
window.navigationBarColor = ColorUtil.darkenColor(color)
|
window.navigationBarColor = ColorUtil.darkenColor(color)
|
||||||
|
|
|
@ -49,7 +49,6 @@ import code.name.monkey.retromusic.extensions.*
|
||||||
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
|
import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment
|
||||||
import code.name.monkey.retromusic.glide.GlideApp
|
import code.name.monkey.retromusic.glide.GlideApp
|
||||||
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
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.glide.SingleColorTarget
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.SortOrder.AlbumSongSortOrder.Companion.SONG_A_Z
|
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.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.RetroColorUtil
|
import code.name.monkey.retromusic.util.RetroColorUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
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.AttachedCab
|
||||||
import com.afollestad.materialcab.attached.destroy
|
import com.afollestad.materialcab.attached.destroy
|
||||||
import com.afollestad.materialcab.attached.isActive
|
import com.afollestad.materialcab.attached.isActive
|
||||||
|
@ -307,7 +305,7 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det
|
||||||
detailsViewModel.getMoreAlbums(artist).observe(viewLifecycleOwner) {
|
detailsViewModel.getMoreAlbums(artist).observe(viewLifecycleOwner) {
|
||||||
moreAlbums(it)
|
moreAlbums(it)
|
||||||
}
|
}
|
||||||
GlideApp.with(requireContext()).asBitmapPalette().artistImageOptions(artist)
|
GlideApp.with(requireContext())
|
||||||
//.forceDownload(PreferenceUtil.isAllowedToDownloadMetadata())
|
//.forceDownload(PreferenceUtil.isAllowedToDownloadMetadata())
|
||||||
.load(
|
.load(
|
||||||
RetroGlideExtension.getArtistModel(
|
RetroGlideExtension.getArtistModel(
|
||||||
|
@ -315,12 +313,10 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det
|
||||||
PreferenceUtil.isAllowedToDownloadMetadata()
|
PreferenceUtil.isAllowedToDownloadMetadata()
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
.artistImageOptions(artist)
|
||||||
.dontAnimate()
|
.dontAnimate()
|
||||||
.dontTransform()
|
.dontTransform()
|
||||||
.into(object : RetroMusicColoredTarget(binding.artistImage) {
|
.into(binding.artistImage)
|
||||||
override fun onColorReady(colors: MediaNotificationProcessor) {
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadAlbumCover(album: Album) {
|
private fun loadAlbumCover(album: Album) {
|
||||||
|
|
|
@ -22,7 +22,6 @@ import android.content.Intent
|
||||||
import android.graphics.drawable.AnimatedVectorDrawable
|
import android.graphics.drawable.AnimatedVectorDrawable
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.media.MediaMetadataRetriever
|
import android.media.MediaMetadataRetriever
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.MediaStore
|
import android.provider.MediaStore
|
||||||
import android.view.GestureDetector
|
import android.view.GestureDetector
|
||||||
|
@ -297,7 +296,7 @@ abstract class AbsPlayerFragment(@LayoutRes layout: Int) : AbsMainActivityFragme
|
||||||
playerAlbumCoverFragment = whichFragment(R.id.playerAlbumCoverFragment)
|
playerAlbumCoverFragment = whichFragment(R.id.playerAlbumCoverFragment)
|
||||||
playerAlbumCoverFragment?.setCallbacks(this)
|
playerAlbumCoverFragment?.setCallbacks(this)
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
|
if (VersionUtils.hasMarshmallow())
|
||||||
view.findViewById<RelativeLayout>(R.id.statusBarShadow)?.hide()
|
view.findViewById<RelativeLayout>(R.id.statusBarShadow)?.hide()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -181,14 +181,13 @@ class HomeFragment :
|
||||||
private fun loadProfile() {
|
private fun loadProfile() {
|
||||||
binding.bannerImage?.let {
|
binding.bannerImage?.let {
|
||||||
GlideApp.with(requireContext())
|
GlideApp.with(requireContext())
|
||||||
.asBitmap()
|
|
||||||
.profileBannerOptions(RetroGlideExtension.getBannerModel())
|
|
||||||
.load(RetroGlideExtension.getBannerModel())
|
.load(RetroGlideExtension.getBannerModel())
|
||||||
|
.profileBannerOptions(RetroGlideExtension.getBannerModel())
|
||||||
.into(it)
|
.into(it)
|
||||||
}
|
}
|
||||||
GlideApp.with(requireActivity()).asBitmap()
|
GlideApp.with(requireActivity())
|
||||||
.userProfileOptions(RetroGlideExtension.getUserModel())
|
|
||||||
.load(RetroGlideExtension.getUserModel())
|
.load(RetroGlideExtension.getUserModel())
|
||||||
|
.userProfileOptions(RetroGlideExtension.getUserModel())
|
||||||
.into(binding.userImage)
|
.into(binding.userImage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -273,9 +272,8 @@ class HomeFragment :
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GlideApp.with(this)
|
GlideApp.with(this)
|
||||||
.asBitmap()
|
|
||||||
.songCoverOptions(songs[index])
|
|
||||||
.load(RetroGlideExtension.getSongModel(songs[index]))
|
.load(RetroGlideExtension.getSongModel(songs[index]))
|
||||||
|
.songCoverOptions(songs[index])
|
||||||
.into(imageView)
|
.into(imageView)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,10 +114,9 @@ open class MiniPlayerFragment : AbsMusicServiceFragment(R.layout.fragment_mini_p
|
||||||
private fun updateSongCover() {
|
private fun updateSongCover() {
|
||||||
val song = MusicPlayerRemote.currentSong
|
val song = MusicPlayerRemote.currentSong
|
||||||
GlideApp.with(requireContext())
|
GlideApp.with(requireContext())
|
||||||
.asBitmap()
|
|
||||||
.songCoverOptions(song)
|
|
||||||
.transition(RetroGlideExtension.getDefaultTransition())
|
|
||||||
.load(RetroGlideExtension.getSongModel(song))
|
.load(RetroGlideExtension.getSongModel(song))
|
||||||
|
.transition(RetroGlideExtension.getDefaultTransition())
|
||||||
|
.songCoverOptions(song)
|
||||||
.into(binding.image)
|
.into(binding.image)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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.fragments.player.PlayerAlbumCoverFragment
|
||||||
import code.name.monkey.retromusic.glide.GlideApp
|
import code.name.monkey.retromusic.glide.GlideApp
|
||||||
import code.name.monkey.retromusic.glide.RetroGlideExtension
|
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
|
||||||
import code.name.monkey.retromusic.model.Song
|
import code.name.monkey.retromusic.model.Song
|
||||||
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
|
import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
|
||||||
|
@ -134,12 +133,10 @@ class FullPlayerFragment : AbsPlayerFragment(R.layout.fragment_full) {
|
||||||
libraryViewModel.artist(MusicPlayerRemote.currentSong.artistId)
|
libraryViewModel.artist(MusicPlayerRemote.currentSong.artistId)
|
||||||
.observe(viewLifecycleOwner) { artist ->
|
.observe(viewLifecycleOwner) { artist ->
|
||||||
if (artist.id != -1L) {
|
if (artist.id != -1L) {
|
||||||
GlideApp.with(requireActivity()).asBitmapPalette().artistImageOptions(artist)
|
GlideApp.with(requireActivity())
|
||||||
.load(RetroGlideExtension.getArtistModel(artist))
|
.load(RetroGlideExtension.getArtistModel(artist))
|
||||||
.into(object : RetroMusicColoredTarget(binding.artistImage) {
|
.artistImageOptions(artist)
|
||||||
override fun onColorReady(colors: MediaNotificationProcessor) {
|
.into(binding.artistImage)
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -151,17 +148,15 @@ class FullPlayerFragment : AbsPlayerFragment(R.layout.fragment_full) {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateLabel() {
|
private fun updateLabel() {
|
||||||
(MusicPlayerRemote.playingQueue.size - 1).apply {
|
if ((MusicPlayerRemote.playingQueue.size - 1) == (MusicPlayerRemote.position)) {
|
||||||
if (this == (MusicPlayerRemote.position)) {
|
binding.nextSongLabel.setText(R.string.last_song)
|
||||||
binding.nextSongLabel.setText(R.string.last_song)
|
binding.nextSong.hide()
|
||||||
binding.nextSong.hide()
|
} else {
|
||||||
} else {
|
val title = MusicPlayerRemote.playingQueue[MusicPlayerRemote.position + 1].title
|
||||||
val title = MusicPlayerRemote.playingQueue[MusicPlayerRemote.position + 1].title
|
binding.nextSongLabel.setText(R.string.next_song)
|
||||||
binding.nextSongLabel.setText(R.string.next_song)
|
binding.nextSong.apply {
|
||||||
binding.nextSong.apply {
|
text = title
|
||||||
text = title
|
show()
|
||||||
show()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import android.view.animation.LinearInterpolator
|
||||||
import androidx.appcompat.widget.Toolbar
|
import androidx.appcompat.widget.Toolbar
|
||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
|
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.R
|
||||||
import code.name.monkey.retromusic.databinding.FragmentTinyPlayerBinding
|
import code.name.monkey.retromusic.databinding.FragmentTinyPlayerBinding
|
||||||
import code.name.monkey.retromusic.extensions.drawAboveSystemBars
|
import code.name.monkey.retromusic.extensions.drawAboveSystemBars
|
||||||
|
@ -283,7 +284,7 @@ class TinyPlayerFragment : AbsPlayerFragment(R.layout.fragment_tiny_player),
|
||||||
@Suppress("Deprecation")
|
@Suppress("Deprecation")
|
||||||
private fun vibrate() {
|
private fun vibrate() {
|
||||||
val v = requireContext().getSystemService<Vibrator>()
|
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))
|
v?.vibrate(VibrationEffect.createOneShot(10, VibrationEffect.DEFAULT_AMPLITUDE))
|
||||||
} else {
|
} else {
|
||||||
v?.vibrate(10)
|
v?.vibrate(10)
|
||||||
|
|
|
@ -15,7 +15,6 @@
|
||||||
package code.name.monkey.retromusic.fragments.settings
|
package code.name.monkey.retromusic.fragments.settings
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.TwoStatePreference
|
import androidx.preference.TwoStatePreference
|
||||||
|
@ -48,7 +47,7 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
|
||||||
setSummary(it, newValue)
|
setSummary(it, newValue)
|
||||||
ThemeStore.markChanged(requireContext())
|
ThemeStore.markChanged(requireContext())
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
|
if (VersionUtils.hasNougatMR()) {
|
||||||
requireActivity().setTheme(PreferenceUtil.themeResFromPrefValue(theme))
|
requireActivity().setTheme(PreferenceUtil.themeResFromPrefValue(theme))
|
||||||
DynamicShortcutManager(requireContext()).updateDynamicShortcuts()
|
DynamicShortcutManager(requireContext()).updateDynamicShortcuts()
|
||||||
}
|
}
|
||||||
|
@ -83,7 +82,7 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
|
||||||
return@setOnPreferenceChangeListener false
|
return@setOnPreferenceChangeListener false
|
||||||
}
|
}
|
||||||
ThemeStore.markChanged(requireContext())
|
ThemeStore.markChanged(requireContext())
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
|
if (VersionUtils.hasNougatMR()) {
|
||||||
requireActivity().setTheme(PreferenceUtil.themeResFromPrefValue("black"))
|
requireActivity().setTheme(PreferenceUtil.themeResFromPrefValue("black"))
|
||||||
DynamicShortcutManager(requireContext()).updateDynamicShortcuts()
|
DynamicShortcutManager(requireContext()).updateDynamicShortcuts()
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ import android.os.Environment
|
||||||
import android.provider.MediaStore
|
import android.provider.MediaStore
|
||||||
import android.provider.MediaStore.Audio.AudioColumns
|
import android.provider.MediaStore.Audio.AudioColumns
|
||||||
import android.provider.MediaStore.Audio.Media
|
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.IS_MUSIC
|
||||||
import code.name.monkey.retromusic.Constants.baseProjection
|
import code.name.monkey.retromusic.Constants.baseProjection
|
||||||
import code.name.monkey.retromusic.extensions.getInt
|
import code.name.monkey.retromusic.extensions.getInt
|
||||||
|
@ -188,7 +189,7 @@ class RealSongRepository(private val context: Context) : SongRepository {
|
||||||
selectionFinal =
|
selectionFinal =
|
||||||
selectionFinal + " AND " + Media.DURATION + ">= " + (PreferenceUtil.filterLength * 1000)
|
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)
|
Media.getContentUri(MediaStore.VOLUME_EXTERNAL)
|
||||||
} else {
|
} else {
|
||||||
Media.EXTERNAL_CONTENT_URI
|
Media.EXTERNAL_CONTENT_URI
|
||||||
|
|
|
@ -1146,9 +1146,10 @@ class MusicService : MediaBrowserServiceCompat(),
|
||||||
if (isAlbumArtOnLockScreen) {
|
if (isAlbumArtOnLockScreen) {
|
||||||
val screenSize = RetroUtil.getScreenSize(this@MusicService)
|
val screenSize = RetroUtil.getScreenSize(this@MusicService)
|
||||||
val request: RequestBuilder<Bitmap> =
|
val request: RequestBuilder<Bitmap> =
|
||||||
GlideApp.with(this@MusicService).asBitmap().songCoverOptions(song).load(
|
GlideApp.with(this@MusicService)
|
||||||
getSongModel(song)
|
.asBitmap()
|
||||||
)
|
.songCoverOptions(song)
|
||||||
|
.load(getSongModel(song))
|
||||||
if (isBlurredAlbumArt) {
|
if (isBlurredAlbumArt) {
|
||||||
request.transform(BlurTransformation.Builder(this@MusicService).build())
|
request.transform(BlurTransformation.Builder(this@MusicService).build())
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@ import android.content.Intent
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.os.Build
|
|
||||||
import android.widget.RemoteViews
|
import android.widget.RemoteViews
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
import code.name.monkey.appthemehelper.util.ATHUtil.resolveColor
|
import code.name.monkey.appthemehelper.util.ATHUtil.resolveColor
|
||||||
|
@ -324,7 +323,7 @@ class PlayingNotificationClassic(
|
||||||
context: Context,
|
context: Context,
|
||||||
notificationManager: NotificationManager
|
notificationManager: NotificationManager
|
||||||
): PlayingNotification {
|
): PlayingNotification {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (VersionUtils.hasOreo()) {
|
||||||
createNotificationChannel(context, notificationManager)
|
createNotificationChannel(context, notificationManager)
|
||||||
}
|
}
|
||||||
return PlayingNotificationClassic(context)
|
return PlayingNotificationClassic(context)
|
||||||
|
|
|
@ -232,7 +232,7 @@ class PlayingNotificationImpl24(
|
||||||
notificationManager: NotificationManager,
|
notificationManager: NotificationManager,
|
||||||
mediaSession: MediaSessionCompat
|
mediaSession: MediaSessionCompat
|
||||||
): PlayingNotification {
|
): PlayingNotification {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
if (VersionUtils.hasOreo()) {
|
||||||
createNotificationChannel(context, notificationManager)
|
createNotificationChannel(context, notificationManager)
|
||||||
}
|
}
|
||||||
return PlayingNotificationImpl24(context, mediaSession.sessionToken)
|
return PlayingNotificationImpl24(context, mediaSession.sessionToken)
|
||||||
|
|
|
@ -49,6 +49,7 @@ import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import code.name.monkey.appthemehelper.util.TintHelper;
|
import code.name.monkey.appthemehelper.util.TintHelper;
|
||||||
|
import code.name.monkey.appthemehelper.util.VersionUtils;
|
||||||
import code.name.monkey.retromusic.App;
|
import code.name.monkey.retromusic.App;
|
||||||
|
|
||||||
public class RetroUtil {
|
public class RetroUtil {
|
||||||
|
|
|
@ -22,6 +22,8 @@ import android.provider.BaseColumns
|
||||||
import android.provider.MediaStore
|
import android.provider.MediaStore
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import android.widget.Toast
|
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.R
|
||||||
import code.name.monkey.retromusic.model.Song
|
import code.name.monkey.retromusic.model.Song
|
||||||
import code.name.monkey.retromusic.util.MusicUtil.getSongFileUri
|
import code.name.monkey.retromusic.util.MusicUtil.getSongFileUri
|
||||||
|
@ -55,7 +57,7 @@ class RingtoneManager(val context: Context) {
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
fun requiresDialog(context: Context): Boolean {
|
fun requiresDialog(context: Context): Boolean {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
if (VersionUtils.hasMarshmallow()) {
|
||||||
if (!Settings.System.canWrite(context)) {
|
if (!Settings.System.canWrite(context)) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,10 +8,11 @@
|
||||||
|
|
||||||
<code.name.monkey.retromusic.views.TopAppBarLayout
|
<code.name.monkey.retromusic.views.TopAppBarLayout
|
||||||
android:id="@+id/appBarLayout"
|
android:id="@+id/appBarLayout"
|
||||||
|
style="?appBarLayoutStyle"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
style="?appBarLayoutStyle"
|
android:fitsSystemWindows="true"
|
||||||
android:fitsSystemWindows="true" />
|
android:theme="@style/CenteredCheckBoxTheme" />
|
||||||
|
|
||||||
<code.name.monkey.retromusic.views.insets.InsetsRecyclerView
|
<code.name.monkey.retromusic.views.insets.InsetsRecyclerView
|
||||||
android:id="@+id/recycler_view"
|
android:id="@+id/recycler_view"
|
||||||
|
|
|
@ -28,8 +28,9 @@
|
||||||
|
|
||||||
<com.google.android.material.checkbox.MaterialCheckBox
|
<com.google.android.material.checkbox.MaterialCheckBox
|
||||||
android:id="@+id/checkbox"
|
android:id="@+id/checkbox"
|
||||||
|
style="@style/Widget.Material3.CompoundButton.CheckBox"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:clickable="false"
|
android:clickable="false"
|
||||||
android:focusable="false"
|
android:focusable="false"
|
||||||
|
|
|
@ -125,7 +125,6 @@
|
||||||
<item name="cornerSize">0dp</item>
|
<item name="cornerSize">0dp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
<style name="SplashTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
|
<style name="SplashTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
|
||||||
<item name="android:windowBackground">@drawable/splash</item>
|
<item name="android:windowBackground">@drawable/splash</item>
|
||||||
<item name="android:statusBarColor">@android:color/transparent</item>
|
<item name="android:statusBarColor">@android:color/transparent</item>
|
||||||
|
@ -134,6 +133,14 @@
|
||||||
<style name="MaterialPopupMenuStyle" parent="Widget.Material3.PopupMenu">
|
<style name="MaterialPopupMenuStyle" parent="Widget.Material3.PopupMenu">
|
||||||
<item name="android:popupBackground">@drawable/popup_background</item>
|
<item name="android:popupBackground">@drawable/popup_background</item>
|
||||||
</style>
|
</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">
|
<style name="MaterialAlertDialogTheme" parent="ThemeOverlay.Material3.MaterialAlertDialog">
|
||||||
<item name="materialAlertDialogBodyTextStyle">
|
<item name="materialAlertDialogBodyTextStyle">
|
||||||
|
@ -180,7 +187,6 @@
|
||||||
<item name="android:paddingBottom">@dimen/button_padding_vertical</item>
|
<item name="android:paddingBottom">@dimen/button_padding_vertical</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
<style name="BottomSheetStyle" parent="Widget.Material3.BottomSheet">
|
<style name="BottomSheetStyle" parent="Widget.Material3.BottomSheet">
|
||||||
<item name="android:maxWidth">@empty</item>
|
<item name="android:maxWidth">@empty</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -14,7 +14,7 @@ buildscript {
|
||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
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 "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_version"
|
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$navigation_version"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue