Merge pull request #1229 from prathameshmm02/dev
Android Auto and few bug fixes
This commit is contained in:
commit
20831f02bb
35 changed files with 1672 additions and 1801 deletions
|
@ -14,7 +14,7 @@ android {
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
|
|
||||||
applicationId "code.name.monkey.retromusic"
|
applicationId "code.name.monkey.retromusic"
|
||||||
versionCode 10563
|
versionCode 10564
|
||||||
versionName '5.7.0'
|
versionName '5.7.0'
|
||||||
|
|
||||||
buildConfigField("String", "GOOGLE_PLAY_LICENSING_KEY", "\"${getProperty(getProperties('../public.properties'), 'GOOGLE_PLAY_LICENSE_KEY')}\"")
|
buildConfigField("String", "GOOGLE_PLAY_LICENSING_KEY", "\"${getProperty(getProperties('../public.properties'), 'GOOGLE_PLAY_LICENSE_KEY')}\"")
|
||||||
|
@ -45,16 +45,14 @@ android {
|
||||||
buildFeatures{
|
buildFeatures{
|
||||||
viewBinding true
|
viewBinding true
|
||||||
}
|
}
|
||||||
|
|
||||||
packagingOptions {
|
packagingOptions {
|
||||||
exclude 'META-INF/LICENSE'
|
resources {
|
||||||
exclude 'META-INF/NOTICE'
|
excludes += ['META-INF/LICENSE', 'META-INF/NOTICE', 'META-INF/java.properties']
|
||||||
exclude 'META-INF/java.properties'
|
}
|
||||||
}
|
}
|
||||||
lintOptions {
|
lint {
|
||||||
disable 'MissingTranslation'
|
|
||||||
disable 'InvalidPackage'
|
|
||||||
abortOnError false
|
abortOnError false
|
||||||
|
disable 'MissingTranslation', 'InvalidPackage'
|
||||||
}
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
coreLibraryDesugaringEnabled true
|
coreLibraryDesugaringEnabled true
|
||||||
|
@ -101,7 +99,7 @@ dependencies {
|
||||||
implementation 'androidx.palette:palette-ktx:1.0.0'
|
implementation 'androidx.palette:palette-ktx:1.0.0'
|
||||||
|
|
||||||
//Cast Dependencies
|
//Cast Dependencies
|
||||||
implementation 'androidx.mediarouter:mediarouter:1.2.5'
|
implementation 'androidx.mediarouter:mediarouter:1.2.6'
|
||||||
implementation 'com.google.android.gms:play-services-cast-framework:21.0.1'
|
implementation 'com.google.android.gms:play-services-cast-framework:21.0.1'
|
||||||
//WebServer by NanoHttpd
|
//WebServer by NanoHttpd
|
||||||
implementation "org.nanohttpd:nanohttpd:2.3.1"
|
implementation "org.nanohttpd:nanohttpd:2.3.1"
|
||||||
|
@ -115,7 +113,7 @@ dependencies {
|
||||||
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"
|
||||||
|
|
||||||
def lifecycle_version = "2.4.0"
|
def lifecycle_version = "2.5.0-alpha01"
|
||||||
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
|
||||||
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
|
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
|
||||||
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
|
||||||
|
|
|
@ -308,7 +308,7 @@
|
||||||
<service
|
<service
|
||||||
android:name=".service.MusicService"
|
android:name=".service.MusicService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="false"
|
android:exported="true"
|
||||||
android:foregroundServiceType="mediaPlayback"
|
android:foregroundServiceType="mediaPlayback"
|
||||||
android:label="@string/app_name">
|
android:label="@string/app_name">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
@ -328,6 +328,17 @@
|
||||||
android:name="com.android.vending.splits.required"
|
android:name="com.android.vending.splits.required"
|
||||||
android:value="true" />
|
android:value="true" />
|
||||||
|
|
||||||
|
<!-- Android Auto -->
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.android.gms.car.application"
|
||||||
|
android:resource="@xml/automotive_app_desc" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.android.gms.car.application.theme"
|
||||||
|
android:resource="@style/CarTheme" />
|
||||||
|
<meta-data
|
||||||
|
android:name="com.google.android.gms.car.notification.SmallIcon"
|
||||||
|
android:resource="@drawable/ic_notification" />
|
||||||
|
|
||||||
<!-- ChromeCast -->
|
<!-- ChromeCast -->
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
|
android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME"
|
||||||
|
|
|
@ -69,6 +69,7 @@
|
||||||
<h2>v5.7.0</h2>
|
<h2>v5.7.0</h2>
|
||||||
<h3>What's New</h3>
|
<h3>What's New</h3>
|
||||||
<ul>
|
<ul>
|
||||||
|
<li>Added Android Auto</li>
|
||||||
<li>Added accent color extraction on Android 8.1+ devices</li>
|
<li>Added accent color extraction on Android 8.1+ devices</li>
|
||||||
<li>Added new Circle widget</li>
|
<li>Added new Circle widget</li>
|
||||||
<li>Added Collapsing appbar to library tabs with an option to switch back to simple appbar
|
<li>Added Collapsing appbar to library tabs with an option to switch back to simple appbar
|
||||||
|
|
|
@ -24,12 +24,17 @@ import code.name.monkey.retromusic.db.toPlayCount
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.interfaces.IMusicServiceEventListener
|
import code.name.monkey.retromusic.interfaces.IMusicServiceEventListener
|
||||||
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.Companion.FAVORITE_STATE_CHANGED
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.MEDIA_STORE_CHANGED
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.META_CHANGED
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.PLAY_STATE_CHANGED
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.QUEUE_CHANGED
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.REPEAT_MODE_CHANGED
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.SHUFFLE_MODE_CHANGED
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.koin.android.ext.android.inject
|
import org.koin.android.ext.android.inject
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
abstract class AbsMusicServiceActivity : AbsBaseActivity(), IMusicServiceEventListener {
|
abstract class AbsMusicServiceActivity : AbsBaseActivity(), IMusicServiceEventListener {
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,11 @@ import code.name.monkey.retromusic.model.smartplaylist.LastAddedPlaylist
|
||||||
import code.name.monkey.retromusic.model.smartplaylist.ShuffleAllPlaylist
|
import code.name.monkey.retromusic.model.smartplaylist.ShuffleAllPlaylist
|
||||||
import code.name.monkey.retromusic.model.smartplaylist.TopTracksPlaylist
|
import code.name.monkey.retromusic.model.smartplaylist.TopTracksPlaylist
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_PLAY_PLAYLIST
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.INTENT_EXTRA_PLAYLIST
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.INTENT_EXTRA_SHUFFLE_MODE
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.SHUFFLE_MODE_NONE
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.SHUFFLE_MODE_SHUFFLE
|
||||||
|
|
||||||
class AppShortcutLauncherActivity : Activity() {
|
class AppShortcutLauncherActivity : Activity() {
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,9 @@ import code.name.monkey.retromusic.appwidgets.base.BaseAppWidget
|
||||||
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.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_REWIND
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
import code.name.monkey.retromusic.util.RetroUtil
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
|
|
|
@ -32,7 +32,9 @@ 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.palette.BitmapPaletteWrapper
|
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_REWIND
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
import code.name.monkey.retromusic.util.ImageUtil
|
import code.name.monkey.retromusic.util.ImageUtil
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
import code.name.monkey.retromusic.util.RetroUtil
|
||||||
|
|
|
@ -30,8 +30,8 @@ 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.palette.BitmapPaletteWrapper
|
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.ACTION_TOGGLE_PAUSE
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
import code.name.monkey.retromusic.service.MusicService.TOGGLE_FAVORITE
|
import code.name.monkey.retromusic.service.MusicService.Companion.TOGGLE_FAVORITE
|
||||||
import code.name.monkey.retromusic.util.ImageUtil
|
import code.name.monkey.retromusic.util.ImageUtil
|
||||||
import code.name.monkey.retromusic.util.MusicUtil
|
import code.name.monkey.retromusic.util.MusicUtil
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
|
|
|
@ -33,7 +33,9 @@ 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.palette.BitmapPaletteWrapper
|
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_REWIND
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
import code.name.monkey.retromusic.util.ImageUtil
|
import code.name.monkey.retromusic.util.ImageUtil
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
import code.name.monkey.retromusic.util.RetroUtil
|
||||||
|
|
|
@ -32,7 +32,9 @@ 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.palette.BitmapPaletteWrapper
|
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_REWIND
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
import code.name.monkey.retromusic.util.DensityUtil
|
import code.name.monkey.retromusic.util.DensityUtil
|
||||||
import code.name.monkey.retromusic.util.ImageUtil
|
import code.name.monkey.retromusic.util.ImageUtil
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
|
|
|
@ -32,7 +32,9 @@ 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.palette.BitmapPaletteWrapper
|
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_REWIND
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
import code.name.monkey.retromusic.util.RetroUtil
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
|
|
|
@ -28,7 +28,9 @@ import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.activities.MainActivity
|
import code.name.monkey.retromusic.activities.MainActivity
|
||||||
import code.name.monkey.retromusic.appwidgets.base.BaseAppWidget
|
import code.name.monkey.retromusic.appwidgets.base.BaseAppWidget
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_REWIND
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
import code.name.monkey.retromusic.util.RetroUtil
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,11 @@ import code.name.monkey.retromusic.App
|
||||||
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.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.APP_WIDGET_UPDATE
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.EXTRA_APP_WIDGET_NAME
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.FAVORITE_STATE_CHANGED
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.META_CHANGED
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.PLAY_STATE_CHANGED
|
||||||
|
|
||||||
abstract class BaseAppWidget : AppWidgetProvider() {
|
abstract class BaseAppWidget : AppWidgetProvider() {
|
||||||
|
|
||||||
|
|
|
@ -10,10 +10,10 @@ import com.google.android.gms.cast.framework.media.widget.ExpandedControllerActi
|
||||||
|
|
||||||
|
|
||||||
class ExpandedControlsActivity : ExpandedControllerActivity() {
|
class ExpandedControlsActivity : ExpandedControllerActivity() {
|
||||||
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu): Boolean {
|
||||||
super.onCreateOptionsMenu(menu)
|
super.onCreateOptionsMenu(menu)
|
||||||
menuInflater.inflate(R.menu.menu_cast, menu)
|
menuInflater.inflate(R.menu.menu_cast, menu)
|
||||||
CastButtonFactory.setUpMediaRouteButton(this, menu!!, R.id.action_cast)
|
CastButtonFactory.setUpMediaRouteButton(this, menu, R.id.action_cast)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -9,6 +9,7 @@ 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.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
import com.afollestad.materialdialogs.list.listItems
|
import com.afollestad.materialdialogs.list.listItems
|
||||||
import com.afollestad.materialdialogs.list.updateListItems
|
import com.afollestad.materialdialogs.list.updateListItems
|
||||||
|
@ -61,7 +62,7 @@ class BlacklistFolderChooserDialog : DialogFragment() {
|
||||||
)
|
)
|
||||||
!= PackageManager.PERMISSION_GRANTED
|
!= PackageManager.PERMISSION_GRANTED
|
||||||
) {
|
) {
|
||||||
return MaterialDialog(requireActivity()).show {
|
return materialDialog().show {
|
||||||
title(res = R.string.md_error_label)
|
title(res = R.string.md_error_label)
|
||||||
message(res = R.string.md_storage_perm_error)
|
message(res = R.string.md_storage_perm_error)
|
||||||
positiveButton(res = android.R.string.ok)
|
positiveButton(res = android.R.string.ok)
|
||||||
|
@ -76,7 +77,7 @@ class BlacklistFolderChooserDialog : DialogFragment() {
|
||||||
parentFolder = File(mSavedInstanceState.getString("current_path", File.pathSeparator))
|
parentFolder = File(mSavedInstanceState.getString("current_path", File.pathSeparator))
|
||||||
checkIfCanGoUp()
|
checkIfCanGoUp()
|
||||||
parentContents = listFiles()
|
parentContents = listFiles()
|
||||||
return MaterialDialog(requireContext())
|
return materialDialog()
|
||||||
.title(text = parentFolder!!.absolutePath)
|
.title(text = parentFolder!!.absolutePath)
|
||||||
.listItems(
|
.listItems(
|
||||||
items = contentsArray.toCharSequence(),
|
items = contentsArray.toCharSequence(),
|
||||||
|
@ -85,7 +86,6 @@ class BlacklistFolderChooserDialog : DialogFragment() {
|
||||||
onSelection(i)
|
onSelection(i)
|
||||||
}
|
}
|
||||||
.noAutoDismiss()
|
.noAutoDismiss()
|
||||||
.cornerRadius(literalDp = 20F)
|
|
||||||
.positiveButton(res = R.string.add_action) {
|
.positiveButton(res = R.string.add_action) {
|
||||||
callback!!.onFolderSelection(this@BlacklistFolderChooserDialog, parentFolder!!)
|
callback!!.onFolderSelection(this@BlacklistFolderChooserDialog, parentFolder!!)
|
||||||
dismiss()
|
dismiss()
|
||||||
|
|
|
@ -26,13 +26,13 @@ import code.name.monkey.retromusic.EXTRA_SONG
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.activities.saf.SAFGuideActivity
|
import code.name.monkey.retromusic.activities.saf.SAFGuideActivity
|
||||||
import code.name.monkey.retromusic.extensions.extraNotNull
|
import code.name.monkey.retromusic.extensions.extraNotNull
|
||||||
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
import code.name.monkey.retromusic.fragments.LibraryViewModel
|
import code.name.monkey.retromusic.fragments.LibraryViewModel
|
||||||
import code.name.monkey.retromusic.fragments.ReloadType
|
import code.name.monkey.retromusic.fragments.ReloadType
|
||||||
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.MusicUtil
|
import code.name.monkey.retromusic.util.MusicUtil
|
||||||
import code.name.monkey.retromusic.util.SAFUtil
|
import code.name.monkey.retromusic.util.SAFUtil
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
@ -83,11 +83,10 @@ class DeleteSongsDialog : DialogFragment() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return MaterialDialog(requireContext())
|
return materialDialog()
|
||||||
.title(pair.first)
|
.title(pair.first)
|
||||||
.message(text = pair.second)
|
.message(text = pair.second)
|
||||||
.noAutoDismiss()
|
.noAutoDismiss()
|
||||||
.cornerRadius(16F)
|
|
||||||
.negativeButton(android.R.string.cancel) {
|
.negativeButton(android.R.string.cancel) {
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,8 +35,8 @@ import code.name.monkey.retromusic.extensions.colorButtons
|
||||||
import code.name.monkey.retromusic.extensions.materialDialog
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.ACTION_PENDING_QUIT
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_PENDING_QUIT
|
||||||
import code.name.monkey.retromusic.service.MusicService.ACTION_QUIT
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_QUIT
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
import com.afollestad.materialdialogs.WhichButton
|
import com.afollestad.materialdialogs.WhichButton
|
||||||
|
|
|
@ -16,6 +16,7 @@ package code.name.monkey.retromusic.extensions
|
||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
@ -35,3 +36,8 @@ fun AlertDialog.colorButtons(): AlertDialog {
|
||||||
}
|
}
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Fragment.materialDialog(): MaterialDialog {
|
||||||
|
return MaterialDialog(requireContext())
|
||||||
|
.cornerRadius(res = R.dimen.m3_alert_dialog_corner_size)
|
||||||
|
}
|
||||||
|
|
|
@ -19,10 +19,10 @@ import code.name.monkey.retromusic.adapter.backup.BackupAdapter
|
||||||
import code.name.monkey.retromusic.databinding.FragmentBackupBinding
|
import code.name.monkey.retromusic.databinding.FragmentBackupBinding
|
||||||
import code.name.monkey.retromusic.extensions.accentColor
|
import code.name.monkey.retromusic.extensions.accentColor
|
||||||
import code.name.monkey.retromusic.extensions.accentOutlineColor
|
import code.name.monkey.retromusic.extensions.accentOutlineColor
|
||||||
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
import code.name.monkey.retromusic.helper.BackupHelper
|
import code.name.monkey.retromusic.helper.BackupHelper
|
||||||
import code.name.monkey.retromusic.helper.sanitize
|
import code.name.monkey.retromusic.helper.sanitize
|
||||||
import code.name.monkey.retromusic.util.BackupUtil
|
import code.name.monkey.retromusic.util.BackupUtil
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
|
||||||
import com.afollestad.materialdialogs.input.input
|
import com.afollestad.materialdialogs.input.input
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
@ -92,8 +92,7 @@ class BackupFragment : Fragment(R.layout.fragment_backup), BackupAdapter.BackupC
|
||||||
|
|
||||||
@SuppressLint("CheckResult")
|
@SuppressLint("CheckResult")
|
||||||
private fun showCreateBackupDialog() {
|
private fun showCreateBackupDialog() {
|
||||||
MaterialDialog(requireContext()).show {
|
materialDialog().show {
|
||||||
cornerRadius(res = R.dimen.m3_card_corner_radius)
|
|
||||||
title(res = R.string.action_rename)
|
title(res = R.string.action_rename)
|
||||||
input(prefill = BackupHelper.getTimeStamp()) { _, text ->
|
input(prefill = BackupHelper.getTimeStamp()) { _, text ->
|
||||||
// Text submitted with the action button
|
// Text submitted with the action button
|
||||||
|
@ -142,7 +141,7 @@ class BackupFragment : Fragment(R.layout.fragment_backup), BackupAdapter.BackupC
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
R.id.action_rename -> {
|
R.id.action_rename -> {
|
||||||
MaterialDialog(requireContext()).show {
|
materialDialog().show {
|
||||||
title(res = R.string.action_rename)
|
title(res = R.string.action_rename)
|
||||||
input(prefill = file.nameWithoutExtension) { _, text ->
|
input(prefill = file.nameWithoutExtension) { _, text ->
|
||||||
// Text submitted with the action button
|
// Text submitted with the action button
|
||||||
|
|
|
@ -41,6 +41,7 @@ import code.name.monkey.retromusic.databinding.FragmentLyricsBinding
|
||||||
import code.name.monkey.retromusic.databinding.FragmentNormalLyricsBinding
|
import code.name.monkey.retromusic.databinding.FragmentNormalLyricsBinding
|
||||||
import code.name.monkey.retromusic.databinding.FragmentSyncedLyricsBinding
|
import code.name.monkey.retromusic.databinding.FragmentSyncedLyricsBinding
|
||||||
import code.name.monkey.retromusic.extensions.accentColor
|
import code.name.monkey.retromusic.extensions.accentColor
|
||||||
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
import code.name.monkey.retromusic.extensions.textColorSecondary
|
import code.name.monkey.retromusic.extensions.textColorSecondary
|
||||||
import code.name.monkey.retromusic.extensions.uri
|
import code.name.monkey.retromusic.extensions.uri
|
||||||
import code.name.monkey.retromusic.fragments.base.AbsMusicServiceFragment
|
import code.name.monkey.retromusic.fragments.base.AbsMusicServiceFragment
|
||||||
|
@ -50,7 +51,6 @@ import code.name.monkey.retromusic.lyrics.LrcView
|
||||||
import code.name.monkey.retromusic.model.AudioTagInfo
|
import code.name.monkey.retromusic.model.AudioTagInfo
|
||||||
import code.name.monkey.retromusic.model.Song
|
import code.name.monkey.retromusic.model.Song
|
||||||
import code.name.monkey.retromusic.util.*
|
import code.name.monkey.retromusic.util.*
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
|
||||||
import com.afollestad.materialdialogs.input.input
|
import com.afollestad.materialdialogs.input.input
|
||||||
import com.google.android.material.color.MaterialColors
|
import com.google.android.material.color.MaterialColors
|
||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
|
@ -149,7 +149,6 @@ class LyricsFragment : AbsMusicServiceFragment(R.layout.fragment_lyrics) {
|
||||||
setupWakelock()
|
setupWakelock()
|
||||||
setupViews()
|
setupViews()
|
||||||
setupToolbar()
|
setupToolbar()
|
||||||
updateTitleSong()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupViews() {
|
private fun setupViews() {
|
||||||
|
@ -186,22 +185,6 @@ class LyricsFragment : AbsMusicServiceFragment(R.layout.fragment_lyrics) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPlayingMetaChanged() {
|
|
||||||
super.onPlayingMetaChanged()
|
|
||||||
updateTitleSong()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onServiceConnected() {
|
|
||||||
super.onServiceConnected()
|
|
||||||
updateTitleSong()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun updateTitleSong() {
|
|
||||||
song = MusicPlayerRemote.currentSong
|
|
||||||
binding.toolbar.title = song.title
|
|
||||||
binding.toolbar.subtitle = song.artistName
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setupWakelock() {
|
private fun setupWakelock() {
|
||||||
requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
requireActivity().window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
|
||||||
}
|
}
|
||||||
|
@ -239,7 +222,7 @@ class LyricsFragment : AbsMusicServiceFragment(R.layout.fragment_lyrics) {
|
||||||
e.printStackTrace()
|
e.printStackTrace()
|
||||||
}
|
}
|
||||||
|
|
||||||
MaterialDialog(requireContext()).show {
|
materialDialog().show {
|
||||||
title(res = R.string.edit_normal_lyrics)
|
title(res = R.string.edit_normal_lyrics)
|
||||||
input(
|
input(
|
||||||
hintRes = R.string.paste_lyrics_here,
|
hintRes = R.string.paste_lyrics_here,
|
||||||
|
@ -286,7 +269,7 @@ class LyricsFragment : AbsMusicServiceFragment(R.layout.fragment_lyrics) {
|
||||||
private fun editSyncedLyrics() {
|
private fun editSyncedLyrics() {
|
||||||
val content: String = LyricUtil.getStringFromLrc(LyricUtil.getSyncedLyricsFile(song))
|
val content: String = LyricUtil.getStringFromLrc(LyricUtil.getSyncedLyricsFile(song))
|
||||||
|
|
||||||
MaterialDialog(requireContext()).show {
|
materialDialog().show {
|
||||||
title(res = R.string.edit_synced_lyrics)
|
title(res = R.string.edit_synced_lyrics)
|
||||||
input(
|
input(
|
||||||
hintRes = R.string.paste_timeframe_lyrics_here,
|
hintRes = R.string.paste_timeframe_lyrics_here,
|
||||||
|
|
|
@ -545,7 +545,7 @@ class GradientPlayerFragment : AbsPlayerFragment(R.layout.fragment_gradient_play
|
||||||
linearLayoutManager.scrollToPositionWithOffset(MusicPlayerRemote.position + 1, 0)
|
linearLayoutManager.scrollToPositionWithOffset(MusicPlayerRemote.position + 1, 0)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setUpProgressSlider() {
|
private fun setUpProgressSlider() {
|
||||||
binding.playbackControlsFragment.progressSlider.setOnSeekBarChangeListener(object :
|
binding.playbackControlsFragment.progressSlider.setOnSeekBarChangeListener(object :
|
||||||
SimpleOnSeekbarChangeListener() {
|
SimpleOnSeekbarChangeListener() {
|
||||||
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
|
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
|
||||||
|
|
|
@ -28,8 +28,8 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||||
import code.name.monkey.retromusic.*
|
import code.name.monkey.retromusic.*
|
||||||
import code.name.monkey.retromusic.appshortcuts.DynamicShortcutManager
|
import code.name.monkey.retromusic.appshortcuts.DynamicShortcutManager
|
||||||
|
import code.name.monkey.retromusic.extensions.materialDialog
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
|
||||||
import com.afollestad.materialdialogs.color.colorChooser
|
import com.afollestad.materialdialogs.color.colorChooser
|
||||||
import com.google.android.material.color.DynamicColors
|
import com.google.android.material.color.DynamicColors
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ class ThemeSettingsFragment : AbsSettingsFragment() {
|
||||||
val accentColor = ThemeStore.accentColor(requireContext())
|
val accentColor = ThemeStore.accentColor(requireContext())
|
||||||
accentColorPref?.setColor(accentColor, ColorUtil.darkenColor(accentColor))
|
accentColorPref?.setColor(accentColor, ColorUtil.darkenColor(accentColor))
|
||||||
accentColorPref?.setOnPreferenceClickListener {
|
accentColorPref?.setOnPreferenceClickListener {
|
||||||
MaterialDialog(requireContext()).show {
|
materialDialog().show {
|
||||||
colorChooser(
|
colorChooser(
|
||||||
initialSelection = accentColor,
|
initialSelection = accentColor,
|
||||||
showAlphaSelector = false,
|
showAlphaSelector = false,
|
||||||
|
|
|
@ -27,7 +27,12 @@ import android.util.Log
|
||||||
import android.view.KeyEvent
|
import android.view.KeyEvent
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import code.name.monkey.retromusic.BuildConfig
|
import code.name.monkey.retromusic.BuildConfig
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_PAUSE
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_PLAY
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_REWIND
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_STOP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -28,12 +28,13 @@ import code.name.monkey.retromusic.model.Artist
|
||||||
import code.name.monkey.retromusic.model.Playlist
|
import code.name.monkey.retromusic.model.Playlist
|
||||||
import code.name.monkey.retromusic.model.Song
|
import code.name.monkey.retromusic.model.Song
|
||||||
import code.name.monkey.retromusic.repository.*
|
import code.name.monkey.retromusic.repository.*
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.CYCLE_REPEAT
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.TOGGLE_FAVORITE
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.TOGGLE_SHUFFLE
|
||||||
import code.name.monkey.retromusic.util.MusicUtil
|
import code.name.monkey.retromusic.util.MusicUtil
|
||||||
import org.koin.core.component.KoinComponent
|
import org.koin.core.component.KoinComponent
|
||||||
import org.koin.core.component.inject
|
import org.koin.core.component.inject
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by hemanths on 2019-08-01.
|
* Created by hemanths on 2019-08-01.
|
||||||
*/
|
*/
|
||||||
|
@ -95,7 +96,7 @@ class MediaSessionCallback(
|
||||||
AutoMediaIDHelper.MEDIA_ID_MUSICS_BY_HISTORY -> topPlayedRepository.recentlyPlayedTracks()
|
AutoMediaIDHelper.MEDIA_ID_MUSICS_BY_HISTORY -> topPlayedRepository.recentlyPlayedTracks()
|
||||||
AutoMediaIDHelper.MEDIA_ID_MUSICS_BY_SUGGESTIONS -> topPlayedRepository.recentlyPlayedTracks()
|
AutoMediaIDHelper.MEDIA_ID_MUSICS_BY_SUGGESTIONS -> topPlayedRepository.recentlyPlayedTracks()
|
||||||
AutoMediaIDHelper.MEDIA_ID_MUSICS_BY_TOP_TRACKS -> topPlayedRepository.recentlyPlayedTracks()
|
AutoMediaIDHelper.MEDIA_ID_MUSICS_BY_TOP_TRACKS -> topPlayedRepository.recentlyPlayedTracks()
|
||||||
else -> musicService.playingQueue as List<Song>
|
else -> musicService.playingQueue
|
||||||
}
|
}
|
||||||
songs.addAll(tracks)
|
songs.addAll(tracks)
|
||||||
var songIndex = MusicUtil.indexOfSongInList(tracks, itemId)
|
var songIndex = MusicUtil.indexOfSongInList(tracks, itemId)
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -17,7 +17,7 @@ package code.name.monkey.retromusic.service
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import android.os.Message
|
import android.os.Message
|
||||||
import code.name.monkey.retromusic.service.MusicService.SAVE_QUEUES
|
import code.name.monkey.retromusic.service.MusicService.Companion.SAVE_QUEUES
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
|
|
||||||
internal class QueueSaveHandler(
|
internal class QueueSaveHandler(
|
||||||
|
|
|
@ -16,8 +16,7 @@ package code.name.monkey.retromusic.service
|
||||||
|
|
||||||
|
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.PLAY_STATE_CHANGED
|
||||||
import code.name.monkey.retromusic.service.MusicService.PLAY_STATE_CHANGED
|
|
||||||
|
|
||||||
class ThrottledSeekHandler(
|
class ThrottledSeekHandler(
|
||||||
private val musicService: MusicService,
|
private val musicService: MusicService,
|
||||||
|
|
|
@ -39,7 +39,10 @@ import code.name.monkey.retromusic.glide.RetroGlideExtension
|
||||||
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||||
import code.name.monkey.retromusic.model.Song
|
import code.name.monkey.retromusic.model.Song
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_QUIT
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_REWIND
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil
|
import code.name.monkey.retromusic.util.RetroUtil
|
||||||
import code.name.monkey.retromusic.util.RetroUtil.createBitmap
|
import code.name.monkey.retromusic.util.RetroUtil.createBitmap
|
||||||
|
|
|
@ -36,7 +36,11 @@ import code.name.monkey.retromusic.glide.RetroGlideExtension
|
||||||
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
import code.name.monkey.retromusic.glide.palette.BitmapPaletteWrapper
|
||||||
import code.name.monkey.retromusic.model.Song
|
import code.name.monkey.retromusic.model.Song
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.service.MusicService.*
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_QUIT
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_REWIND
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_SKIP
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.ACTION_TOGGLE_PAUSE
|
||||||
|
import code.name.monkey.retromusic.service.MusicService.Companion.TOGGLE_FAVORITE
|
||||||
import code.name.monkey.retromusic.util.MusicUtil
|
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
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
android:id="@+id/toolbar"
|
android:id="@+id/toolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:background="?attr/colorSurface"
|
||||||
android:gravity="start"
|
android:gravity="start"
|
||||||
android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
|
android:navigationIcon="@drawable/ic_keyboard_arrow_down_black"
|
||||||
app:contentInsetLeft="0dp"
|
app:contentInsetLeft="0dp"
|
||||||
|
@ -36,43 +37,31 @@
|
||||||
app:subtitleTextAppearance="@style/TextViewCaption"
|
app:subtitleTextAppearance="@style/TextViewCaption"
|
||||||
app:titleMargin="0dp"
|
app:titleMargin="0dp"
|
||||||
app:titleMarginStart="0dp"
|
app:titleMarginStart="0dp"
|
||||||
android:background="?attr/colorSurface"
|
app:titleTextAppearance="@style/TextViewSubtitle1">
|
||||||
app:titleTextAppearance="@style/TextViewSubtitle1"
|
|
||||||
tools:subtitle="@tools:sample/full_names"
|
|
||||||
tools:title="@tools:sample/full_names" />
|
|
||||||
|
|
||||||
|
<com.google.android.material.tabs.TabLayout
|
||||||
|
android:id="@+id/tabLyrics"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="?attr/colorSurface"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:tabIndicator="@drawable/tab_lyrics_indicator"
|
||||||
|
app:tabIndicatorAnimationMode="elastic"
|
||||||
|
app:tabIndicatorFullWidth="false"
|
||||||
|
app:tabIndicatorHeight="5dp" />
|
||||||
|
</com.google.android.material.appbar.MaterialToolbar>
|
||||||
</com.google.android.material.appbar.AppBarLayout>
|
</com.google.android.material.appbar.AppBarLayout>
|
||||||
|
|
||||||
|
<androidx.viewpager2.widget.ViewPager2
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
android:id="@+id/lyricsPager"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginTop="?attr/actionBarSize">
|
android:layout_marginTop="?attr/actionBarSize"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
<androidx.viewpager2.widget.ViewPager2
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
android:id="@+id/lyricsPager"
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tabLyrics">
|
|
||||||
|
|
||||||
</androidx.viewpager2.widget.ViewPager2>
|
|
||||||
|
|
||||||
<com.google.android.material.tabs.TabLayout
|
|
||||||
android:id="@+id/tabLyrics"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="?attr/colorSurface"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:tabIndicator="@drawable/tab_lyrics_indicator"
|
|
||||||
app:tabIndicatorAnimationMode="elastic"
|
|
||||||
app:tabIndicatorFullWidth="false"
|
|
||||||
app:tabIndicatorHeight="5dp" />
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
android:id="@+id/edit_button"
|
android:id="@+id/edit_button"
|
||||||
|
|
4
app/src/main/res/xml/automotive_app_desc.xml
Normal file
4
app/src/main/res/xml/automotive_app_desc.xml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<automotiveApp>
|
||||||
|
<uses name="media" />
|
||||||
|
</automotiveApp>
|
|
@ -13,7 +13,7 @@ android {
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lintOptions {
|
lint {
|
||||||
abortOnError false
|
abortOnError false
|
||||||
}
|
}
|
||||||
compileOptions {
|
compileOptions {
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
buildscript {
|
buildscript {
|
||||||
ext {
|
ext {
|
||||||
kotlin_version = '1.6.10'
|
kotlin_version = '1.6.10'
|
||||||
navigation_version = '2.4.0-rc01'
|
navigation_version = '2.5.0-alpha01'
|
||||||
mdc_version = '1.5.0'
|
mdc_version = '1.5.0'
|
||||||
preference_version = '1.2.0-rc01'
|
preference_version = '1.2.0'
|
||||||
appcompat_version = '1.4.1'
|
appcompat_version = '1.4.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ buildscript {
|
||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:7.0.4'
|
classpath 'com.android.tools.build:gradle:7.1.0'
|
||||||
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"
|
||||||
}
|
}
|
||||||
|
|
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue