更换包名

This commit is contained in:
ocean 2024-05-24 20:36:01 +08:00
parent 97889aa52f
commit 42c95b9a02
179 changed files with 685 additions and 871 deletions

View File

@ -7,19 +7,19 @@ plugins {
}
android {
namespace = "com.player.musicoo"
namespace = "relax.offline.music"
compileSdk = 34
defaultConfig {
applicationId = "com.player.musicoo"
applicationId = "relax.offline.mp3.music"
minSdk = 24
targetSdk = 34
versionCode = 1
versionName = "1.0.2"
versionName = "1.0.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
setProperty("archivesBaseName", "Musicoo_${defaultConfig.versionName}(${defaultConfig.versionCode})")
setProperty("archivesBaseName", "Musiclax_${defaultConfig.versionName}(${defaultConfig.versionCode})")
}
buildTypes {

View File

@ -1,4 +1,4 @@
package com.player.musicoo
package relax.offline.music
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
@ -19,6 +19,6 @@ class ExampleInstrumentedTest {
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.player.musicoo", appContext.packageName)
assertEquals("relax.offline.music", appContext.packageName)
}
}

View File

@ -16,15 +16,15 @@
android:maxSdkVersion="32" />
<application
android:name=".App"
android:name="relax.offline.music.App"
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/musicoo_logo_img"
android:icon="@mipmap/app_logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/musicoo_logo_img"
android:roundIcon="@mipmap/app_logo"
android:supportsRtl="true"
android:theme="@style/Theme.Musicoo"
android:theme="@style/Theme.Musiclax"
tools:targetApi="31">
<activity
android:name=".activity.LaunchActivity"

View File

@ -1,21 +1,20 @@
package com.player.musicoo
package relax.offline.music
import android.app.Application
import android.content.Context
import android.util.Log
import com.player.musicoo.bean.Audio
import com.player.musicoo.bean.CurrentPlayingAudio
import com.player.musicoo.bean.ResourcesList
import com.player.musicoo.database.AppDatabase
import com.player.musicoo.database.AppOfflineDBManager
import com.player.musicoo.database.CurrentAudioDatabase
import com.player.musicoo.database.CurrentAudioManager
import com.player.musicoo.database.DatabaseManager
import com.player.musicoo.media.LocalMediaControllerManager
import com.player.musicoo.media.MediaControllerManager
import com.player.musicoo.util.CacheManager
import com.player.musicoo.util.DownloadUtil
import com.player.musicoo.util.parseResources
import androidx.annotation.OptIn
import androidx.media3.common.util.UnstableApi
import relax.offline.music.bean.Audio
import relax.offline.music.bean.CurrentPlayingAudio
import relax.offline.music.bean.ResourcesList
import relax.offline.music.database.AppOfflineDBManager
import relax.offline.music.database.CurrentAudioManager
import relax.offline.music.database.DatabaseManager
import relax.offline.music.media.LocalMediaControllerManager
import relax.offline.music.media.MediaControllerManager
import relax.offline.music.util.CacheManager
import relax.offline.music.util.DownloadUtil
import relax.offline.music.util.parseResources
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@ -23,6 +22,7 @@ import kotlinx.coroutines.withContext
import java.io.BufferedReader
import java.io.InputStreamReader
@OptIn(UnstableApi::class)
class App : Application() {
companion object {
lateinit var app: App

View File

@ -1,9 +1,9 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.os.Bundle
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.databinding.ActivityAboutBinding
import com.player.musicoo.util.getAppVersion
import relax.offline.music.databinding.ActivityAboutBinding
import relax.offline.music.util.getAppVersion
class AboutActivity : BaseActivity() {

View File

@ -1,4 +1,4 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity

View File

@ -1,12 +1,10 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.content.Intent
import android.os.Bundle
import android.os.CountDownTimer
import android.util.Log
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.databinding.ActivityLaunchBinding
import com.player.musicoo.util.LogTag
import relax.offline.music.databinding.ActivityLaunchBinding
class LaunchActivity : BaseActivity() {
private lateinit var binding: ActivityLaunchBinding

View File

@ -1,4 +1,4 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.content.Intent
import android.os.Bundle
@ -12,14 +12,13 @@ import androidx.fragment.app.FragmentTransaction
import androidx.media3.common.Player
import com.bumptech.glide.Glide
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.bean.Audio
import com.player.musicoo.databinding.ActivityMainBinding
import com.player.musicoo.fragment.HomeFragment
import com.player.musicoo.fragment.ImportFragment
import com.player.musicoo.media.LocalMediaControllerManager
import com.player.musicoo.util.getAudioDurationFromAssets
import relax.offline.music.R
import relax.offline.music.bean.Audio
import relax.offline.music.databinding.ActivityMainBinding
import relax.offline.music.fragment.HomeFragment
import relax.offline.music.fragment.ImportFragment
import relax.offline.music.media.LocalMediaControllerManager
import relax.offline.music.util.getAudioDurationFromAssets
class MainActivity : BaseActivity() {
@ -52,11 +51,11 @@ class MainActivity : BaseActivity() {
super.onResume()
val currentPlayer = LocalMediaControllerManager.getController()
if (App.currentPlayingAudio == null) {
if (relax.offline.music.App.currentPlayingAudio == null) {
binding.playingStatusLayout.visibility = View.GONE
} else {
binding.playingStatusLayout.visibility = View.VISIBLE
val currentAudio = App.currentPlayingAudio
val currentAudio = relax.offline.music.App.currentPlayingAudio
val maxProgress = try {
getAudioDurationFromAssets(this, currentAudio?.file!!)
@ -71,7 +70,7 @@ class MainActivity : BaseActivity() {
.load("file:///android_asset/${currentAudio?.image}")
.into(binding.audioImg)
} else {
binding.audioImg.setImageResource(R.mipmap.musicoo_logo_img)
binding.audioImg.setImageResource(R.mipmap.app_logo)
}
binding.name.text = currentAudio?.name
@ -97,7 +96,7 @@ class MainActivity : BaseActivity() {
updateBtnState(1)
}
binding.playingStatusLayout.setOnClickListener {
val currentAudio = App.currentPlayingAudio
val currentAudio = relax.offline.music.App.currentPlayingAudio
val duration = try {
getAudioDurationFromAssets(
this, currentAudio?.file!!
@ -131,7 +130,7 @@ class MainActivity : BaseActivity() {
}
updateProgressState()
} else {
LocalMediaControllerManager.setupMedia(this@MainActivity, App.currentPlayingAudio!!,
LocalMediaControllerManager.setupMedia(this@MainActivity, relax.offline.music.App.currentPlayingAudio!!,
object : Player.Listener {
override fun onPlayWhenReadyChanged(
playWhenReady: Boolean,

View File

@ -1,4 +1,4 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.content.Context
import android.graphics.Bitmap
@ -19,20 +19,13 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.LifecycleOwner
import androidx.media3.common.Player
import androidx.media3.common.util.UnstableApi
import androidx.media3.exoplayer.offline.Download
import androidx.media3.exoplayer.offline.DownloadManager
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.bean.OfflineBean
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.media.MediaControllerManager
import com.player.musicoo.sp.AppStore
import com.player.musicoo.util.DownloadUtil
import com.player.musicoo.util.FileSizeConverter
import com.player.musicoo.util.LogTag
import com.player.musicoo.view.MusicPlayerView
import relax.offline.music.R
import relax.offline.music.media.MediaControllerManager
import relax.offline.music.sp.AppStore
import relax.offline.music.util.LogTag
import relax.offline.music.view.MusicPlayerView
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.channels.Channel

View File

@ -1,15 +1,15 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.annotation.SuppressLint
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import com.bumptech.glide.Glide
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.adapter.DetailsListAdapter
import com.player.musicoo.databinding.ActivityDetailsBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.requests.moPlaylistPage
import com.player.musicoo.util.LogTag.LogD
import relax.offline.music.adapter.DetailsListAdapter
import relax.offline.music.databinding.ActivityDetailsBinding
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.requests.moPlaylistPage
import relax.offline.music.util.LogTag.LogD
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select

View File

@ -1,21 +1,14 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.annotation.SuppressLint
import android.view.View
import androidx.media3.common.util.UnstableApi
import androidx.recyclerview.widget.LinearLayoutManager
import com.bumptech.glide.Glide
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.App
import com.player.musicoo.adapter.DetailsListAdapter
import com.player.musicoo.adapter.OfflineSongsAdapter
import com.player.musicoo.bean.OfflineBean
import com.player.musicoo.databinding.ActivityDetailsBinding
import com.player.musicoo.databinding.ActivityOfflineSongsBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.requests.moPlaylistPage
import com.player.musicoo.util.DownloadUtil
import com.player.musicoo.util.LogTag.LogD
import relax.offline.music.adapter.OfflineSongsAdapter
import relax.offline.music.bean.OfflineBean
import relax.offline.music.databinding.ActivityOfflineSongsBinding
import relax.offline.music.util.LogTag.LogD
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select
@ -109,7 +102,7 @@ class MoOfflineSongsActivity : MoBaseActivity() {
showLoadingUi()
offlineList.clear()
offlineList.addAll(App.appOfflineDBManager.getAllOfflineBeans())
offlineList.addAll(relax.offline.music.App.appOfflineDBManager.getAllOfflineBeans())
for (offline in offlineList){
LogD(TAG,"offline id->${offline.videoId}")

View File

@ -1,4 +1,4 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.annotation.SuppressLint
import android.graphics.Bitmap
@ -10,7 +10,6 @@ import android.view.View
import android.view.animation.AnimationUtils
import androidx.annotation.OptIn
import androidx.core.net.toUri
import androidx.lifecycle.LifecycleOwner
import androidx.media3.common.MediaItem
import androidx.media3.common.PlaybackException
import androidx.media3.common.Player
@ -24,25 +23,20 @@ import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.adapter.PlayListAdapter
import com.player.musicoo.bean.OfflineBean
import com.player.musicoo.databinding.ActivityMoPlayDetailsBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.media.MediaControllerManager
import com.player.musicoo.media.SongRadio
import com.player.musicoo.service.MyDownloadService
import com.player.musicoo.service.ViewModelMain
import com.player.musicoo.sp.AppStore
import com.player.musicoo.util.DownloadUtil
import com.player.musicoo.util.FileSizeConverter
import com.player.musicoo.util.LogTag
import com.player.musicoo.util.LogTag.LogD
import com.player.musicoo.util.PlayMode
import com.player.musicoo.util.asMediaItem
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString
import kotlinx.coroutines.CoroutineScope
import relax.offline.music.R
import relax.offline.music.adapter.PlayListAdapter
import relax.offline.music.databinding.ActivityMoPlayDetailsBinding
import relax.offline.music.innertube.Innertube
import relax.offline.music.media.MediaControllerManager
import relax.offline.music.media.SongRadio
import relax.offline.music.service.MyDownloadService
import relax.offline.music.service.ViewModelMain
import relax.offline.music.sp.AppStore
import relax.offline.music.util.DownloadUtil
import relax.offline.music.util.LogTag.LogD
import relax.offline.music.util.PlayMode
import relax.offline.music.util.asMediaItem
import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
@ -590,7 +584,7 @@ class MoPlayDetailsActivity : MoBaseActivity(), Player.Listener {
Glide.with(this)
.asBitmap()
.load(mediaItem.mediaMetadata.artworkUri)
.placeholder(R.mipmap.musicoo_logo_img)
.placeholder(R.mipmap.app_logo)
.into(object : CustomTarget<Bitmap>() {
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
binding.thumbnail.setImageBitmap(resource)

View File

@ -1,32 +1,15 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.annotation.SuppressLint
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.R
import com.player.musicoo.adapter.DetailsListAdapter
import com.player.musicoo.adapter.SearchResultOtherAdapter
import com.player.musicoo.databinding.ActivityDetailsBinding
import com.player.musicoo.databinding.ActivitySearchMoreBinding
import com.player.musicoo.databinding.ActivitySingerDetailsBinding
import com.player.musicoo.fragment.MoHomeFragment
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.models.bodies.SearchBody
import com.player.musicoo.innertube.requests.moPlaylistPage
import com.player.musicoo.innertube.requests.moSearchPage
import com.player.musicoo.innertube.requests.moSingerListPage
import com.player.musicoo.util.LogTag
import com.player.musicoo.util.LogTag.LogD
import com.player.musicoo.view.SearchResultOptimalView
import com.player.musicoo.view.SearchResultOtherView
import com.player.musicoo.view.SingerDetailsOtherView
import com.player.musicoo.view.SingerDetailsSongView
import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener
import relax.offline.music.adapter.SearchResultOtherAdapter
import relax.offline.music.databinding.ActivitySearchMoreBinding
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.bodies.ContinuationBody
import relax.offline.music.innertube.models.bodies.SearchBody
import relax.offline.music.innertube.requests.moSearchPage
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select

View File

@ -1,14 +1,14 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.view.View
import com.bumptech.glide.Glide
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.databinding.ActivitySingerDetailsBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.requests.moSingerListPage
import com.player.musicoo.util.LogTag.LogD
import com.player.musicoo.view.SingerDetailsOtherView
import com.player.musicoo.view.SingerDetailsSongView
import relax.offline.music.databinding.ActivitySingerDetailsBinding
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.requests.moSingerListPage
import relax.offline.music.util.LogTag.LogD
import relax.offline.music.view.SingerDetailsOtherView
import relax.offline.music.view.SingerDetailsSongView
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select

View File

@ -1,17 +1,17 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.annotation.SuppressLint
import android.view.View
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.adapter.SingerMoreSongAdapter
import com.player.musicoo.databinding.ActivitySearchMoreBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.requests.moSingerDetailsMoreLoadMorePage
import com.player.musicoo.innertube.requests.moSingerDetailsMorePage
import relax.offline.music.adapter.SingerMoreSongAdapter
import relax.offline.music.databinding.ActivitySearchMoreBinding
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.models.bodies.ContinuationBody
import relax.offline.music.innertube.requests.moSingerDetailsMoreLoadMorePage
import relax.offline.music.innertube.requests.moSingerDetailsMorePage
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select

View File

@ -1,4 +1,4 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.animation.ValueAnimator
import android.annotation.SuppressLint
@ -21,14 +21,14 @@ import androidx.media3.common.util.UnstableApi
import com.bumptech.glide.Glide
import com.google.android.material.slider.Slider.OnChangeListener
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.R
import com.player.musicoo.bean.Audio
import com.player.musicoo.databinding.ActivityPlayDetailsBinding
import com.player.musicoo.media.LocalMediaControllerManager
import com.player.musicoo.util.LogTag
import com.player.musicoo.util.containsContent
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.getAudioDurationFromAssets
import relax.offline.music.R
import relax.offline.music.bean.Audio
import relax.offline.music.databinding.ActivityPlayDetailsBinding
import relax.offline.music.media.LocalMediaControllerManager
import relax.offline.music.util.LogTag
import relax.offline.music.util.containsContent
import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import relax.offline.music.util.getAudioDurationFromAssets
import java.io.IOException
import java.io.InputStream
@ -75,8 +75,8 @@ class PlayDetailsActivity : BaseActivity() {
binding.imageView.setImageBitmap(blurredBitmap)
} else {
binding.image.setImageResource(R.mipmap.musicoo_logo_img)
val bitmap = loadBitmapFromAsset(R.mipmap.musicoo_logo_img)
binding.image.setImageResource(R.mipmap.app_logo)
val bitmap = loadBitmapFromAsset(R.mipmap.app_logo)
val blurredBitmap = applyGaussianBlur(bitmap, 25f, this)
binding.imageView.setImageBitmap(blurredBitmap)
}

View File

@ -1,24 +1,14 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.content.Intent
import android.os.Handler
import android.os.Looper
import android.os.Message
import android.view.View
import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction
import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import com.bumptech.glide.Glide
import com.player.musicoo.R
import com.player.musicoo.databinding.ActivityPrimaryBinding
import com.player.musicoo.fragment.ImportFragment
import com.player.musicoo.fragment.MoHomeFragment
import com.player.musicoo.fragment.MoMeFragment
import com.player.musicoo.fragment.SearchFragment
import com.player.musicoo.media.MediaControllerManager
import com.player.musicoo.util.LogTag.LogD
import relax.offline.music.R
import relax.offline.music.databinding.ActivityPrimaryBinding
import relax.offline.music.fragment.MoHomeFragment
import relax.offline.music.fragment.MoMeFragment
import relax.offline.music.fragment.SearchFragment
import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select

View File

@ -1,17 +1,17 @@
package com.player.musicoo.activity
package relax.offline.music.activity
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.R
import com.player.musicoo.databinding.ActivitySettingsBinding
import com.player.musicoo.util.PRIVACY_POLICY_URL
import com.player.musicoo.util.TERMS_OF_SERVICE_URL
import com.player.musicoo.util.openPrivacyPolicy
import com.player.musicoo.util.openTermsOfService
import com.player.musicoo.util.sendFeedback
import com.player.musicoo.util.shareApp
import relax.offline.music.R
import relax.offline.music.databinding.ActivitySettingsBinding
import relax.offline.music.util.PRIVACY_POLICY_URL
import relax.offline.music.util.TERMS_OF_SERVICE_URL
import relax.offline.music.util.openPrivacyPolicy
import relax.offline.music.util.openTermsOfService
import relax.offline.music.util.sendFeedback
import relax.offline.music.util.shareApp
class SettingsActivity : AppCompatActivity() {
private lateinit var binding: ActivitySettingsBinding

View File

@ -1,4 +1,4 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.annotation.SuppressLint
import android.content.Context
@ -6,23 +6,13 @@ import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.compose.ui.graphics.Color
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.activity.MoPlayDetailsActivity
import com.player.musicoo.activity.PlayDetailsActivity
import com.player.musicoo.bean.Audio
import com.player.musicoo.databinding.DetailsListItemBinding
import com.player.musicoo.databinding.MusicResponsiveItemBinding
import com.player.musicoo.databinding.SoundsOfAppliancesLayoutBinding
import com.player.musicoo.databinding.SoundsOfNatureLayoutBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.media.MediaControllerManager
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.getAudioDurationFromAssets
import relax.offline.music.R
import relax.offline.music.activity.MoPlayDetailsActivity
import relax.offline.music.databinding.DetailsListItemBinding
import relax.offline.music.innertube.Innertube
import relax.offline.music.media.MediaControllerManager
class DetailsListAdapter(
private val context: Context,

View File

@ -1,20 +1,16 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.annotation.SuppressLint
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.media3.common.C
import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.R
import com.player.musicoo.bean.OfflineBean
import com.player.musicoo.databinding.OfflineListItemBinding
import com.player.musicoo.databinding.PlayListItemBinding
import com.player.musicoo.media.MediaControllerManager
import relax.offline.music.R
import relax.offline.music.bean.OfflineBean
import relax.offline.music.databinding.OfflineListItemBinding
import relax.offline.music.media.MediaControllerManager
class OfflineSongsAdapter(
private val context: Context,

View File

@ -1,20 +1,18 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.activity.PlayDetailsActivity
import com.player.musicoo.bean.Audio
import com.player.musicoo.databinding.ParentsVoiceLayoutBinding
import com.player.musicoo.util.containsContent
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.getAudioDurationFromAssets
import relax.offline.music.R
import relax.offline.music.activity.PlayDetailsActivity
import relax.offline.music.bean.Audio
import relax.offline.music.databinding.ParentsVoiceLayoutBinding
import relax.offline.music.util.containsContent
import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import relax.offline.music.util.getAudioDurationFromAssets
class ParentsVoiceAdapter(
private val context: Context,
@ -44,7 +42,7 @@ class ParentsVoiceAdapter(
fun bind(audio: Audio) {
binding.apply {
image.setImageResource(R.mipmap.musicoo_logo_img)
image.setImageResource(R.mipmap.app_logo)
name.text = audio.name
name.requestFocus()
if (containsContent(audio.file)) {
@ -54,8 +52,8 @@ class ParentsVoiceAdapter(
desc.text = convertMillisToMinutesAndSecondsString(s)
}
if (App.currentPlayingAudio != null) {
if (App.currentPlayingAudio?.file == audio.file) {
if (relax.offline.music.App.currentPlayingAudio != null) {
if (relax.offline.music.App.currentPlayingAudio?.file == audio.file) {
playingLayout.visibility = View.VISIBLE
name.setTextColor(context.getColor(R.color.green))
desc.setTextColor(context.getColor(R.color.green))

View File

@ -1,4 +1,4 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.annotation.SuppressLint
import android.content.Context
@ -7,12 +7,11 @@ import android.view.View
import android.view.ViewGroup
import androidx.media3.common.C
import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.R
import com.player.musicoo.databinding.PlayListItemBinding
import com.player.musicoo.media.MediaControllerManager
import relax.offline.music.R
import relax.offline.music.databinding.PlayListItemBinding
import relax.offline.music.media.MediaControllerManager
class PlayListAdapter(
private val context: Context,

View File

@ -1,4 +1,4 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.content.Context
import android.content.Intent
@ -6,13 +6,12 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.activity.PlayDetailsActivity
import com.player.musicoo.bean.Audio
import com.player.musicoo.databinding.RealHumanVoiceLayoutBinding
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.getAudioDurationFromAssets
import relax.offline.music.R
import relax.offline.music.activity.PlayDetailsActivity
import relax.offline.music.bean.Audio
import relax.offline.music.databinding.RealHumanVoiceLayoutBinding
import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import relax.offline.music.util.getAudioDurationFromAssets
class RealHumanVoiceAdapter(
private val context: Context,
@ -50,8 +49,8 @@ class RealHumanVoiceAdapter(
val s = getAudioDurationFromAssets(context, audio.file)
desc.text = convertMillisToMinutesAndSecondsString(s)
if (App.currentPlayingAudio != null) {
if (App.currentPlayingAudio?.file == audio.file) {
if (relax.offline.music.App.currentPlayingAudio != null) {
if (relax.offline.music.App.currentPlayingAudio?.file == audio.file) {
name.setTextColor(context.getColor(R.color.green))
desc.setTextColor(context.getColor(R.color.green))
} else {

View File

@ -1,4 +1,4 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.content.Context
import android.content.Intent
@ -7,12 +7,11 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.R
import com.player.musicoo.activity.MoPlayDetailsActivity
import com.player.musicoo.databinding.MusicResponsiveItemBinding
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.bodies.NextBody
import com.player.musicoo.media.MediaControllerManager
import relax.offline.music.R
import relax.offline.music.activity.MoPlayDetailsActivity
import relax.offline.music.databinding.MusicResponsiveItemBinding
import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import relax.offline.music.media.MediaControllerManager
class ResponsiveListAdapter(
private val context: Context,

View File

@ -1,10 +1,10 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.player.musicoo.databinding.SearchHistoryAdapterItemBinding
import relax.offline.music.databinding.SearchHistoryAdapterItemBinding
class SearchHistoryAdapter(
private val context: Context,

View File

@ -1,26 +1,18 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.media3.common.C
import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.R
import com.player.musicoo.activity.MoListDetailsActivity
import com.player.musicoo.activity.MoPlayDetailsActivity
import com.player.musicoo.activity.MoSingerDetailsActivity
import com.player.musicoo.databinding.PlayListItemBinding
import com.player.musicoo.databinding.SearchResultOtherItemBinding
import com.player.musicoo.databinding.SearchResultOtherLayoutBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.media.MediaControllerManager
import com.player.musicoo.util.LogTag
import relax.offline.music.activity.MoListDetailsActivity
import relax.offline.music.activity.MoPlayDetailsActivity
import relax.offline.music.activity.MoSingerDetailsActivity
import relax.offline.music.databinding.SearchResultOtherItemBinding
import relax.offline.music.innertube.Innertube
import relax.offline.music.util.LogTag
class SearchResultOtherAdapter(
private val context: Context,

View File

@ -1,10 +1,10 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.content.Context
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.player.musicoo.databinding.SearchSuggestionsAdapterItemBinding
import relax.offline.music.databinding.SearchSuggestionsAdapterItemBinding
class SearchSuggestionsAdapter(
private val context: Context,

View File

@ -1,4 +1,4 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.annotation.SuppressLint
import android.content.Context
@ -8,20 +8,9 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.activity.MoPlayDetailsActivity
import com.player.musicoo.activity.PlayDetailsActivity
import com.player.musicoo.bean.Audio
import com.player.musicoo.databinding.DetailsListItemBinding
import com.player.musicoo.databinding.MusicResponsiveItemBinding
import com.player.musicoo.databinding.SoundsOfAppliancesLayoutBinding
import com.player.musicoo.databinding.SoundsOfNatureLayoutBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.getAudioDurationFromAssets
import relax.offline.music.activity.MoPlayDetailsActivity
import relax.offline.music.databinding.DetailsListItemBinding
import relax.offline.music.innertube.models.MusicShelfRenderer
class SingerDetailsSongListAdapter(
private val context: Context,

View File

@ -1,27 +1,17 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.media3.common.C
import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.R
import com.player.musicoo.activity.MoListDetailsActivity
import com.player.musicoo.activity.MoPlayDetailsActivity
import com.player.musicoo.activity.MoSingerDetailsActivity
import com.player.musicoo.databinding.MusicTowRowItemBinding
import com.player.musicoo.databinding.PlayListItemBinding
import com.player.musicoo.databinding.SearchResultOtherItemBinding
import com.player.musicoo.databinding.SearchResultOtherLayoutBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.media.MediaControllerManager
import com.player.musicoo.util.LogTag
import relax.offline.music.activity.MoListDetailsActivity
import relax.offline.music.activity.MoPlayDetailsActivity
import relax.offline.music.databinding.MusicTowRowItemBinding
import relax.offline.music.databinding.SearchResultOtherItemBinding
import relax.offline.music.innertube.Innertube
class SingerMoreSongAdapter(
private val context: Context,

View File

@ -1,4 +1,4 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.content.Context
import android.content.Intent
@ -7,13 +7,12 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.activity.PlayDetailsActivity
import com.player.musicoo.bean.Audio
import com.player.musicoo.databinding.SoundsOfAppliancesLayoutBinding
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.getAudioDurationFromAssets
import relax.offline.music.R
import relax.offline.music.activity.PlayDetailsActivity
import relax.offline.music.bean.Audio
import relax.offline.music.databinding.SoundsOfAppliancesLayoutBinding
import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import relax.offline.music.util.getAudioDurationFromAssets
class SoundsOfAppliancesAdapter(
private val context: Context,
@ -52,8 +51,8 @@ class SoundsOfAppliancesAdapter(
val s = getAudioDurationFromAssets(context, audio.file)
desc.text = convertMillisToMinutesAndSecondsString(s)
if (App.currentPlayingAudio != null) {
if (App.currentPlayingAudio?.file == audio.file) {
if (relax.offline.music.App.currentPlayingAudio != null) {
if (relax.offline.music.App.currentPlayingAudio?.file == audio.file) {
playingLayout.visibility = View.VISIBLE
name.setTextColor(context.getColor(R.color.green))
desc.setTextColor(context.getColor(R.color.green))

View File

@ -1,4 +1,4 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.content.Context
import android.content.Intent
@ -7,14 +7,12 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.activity.PlayDetailsActivity
import com.player.musicoo.bean.Audio
import com.player.musicoo.databinding.SoundsOfAppliancesLayoutBinding
import com.player.musicoo.databinding.SoundsOfNatureLayoutBinding
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.getAudioDurationFromAssets
import relax.offline.music.R
import relax.offline.music.activity.PlayDetailsActivity
import relax.offline.music.bean.Audio
import relax.offline.music.databinding.SoundsOfNatureLayoutBinding
import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import relax.offline.music.util.getAudioDurationFromAssets
class SoundsOfNatureAdapter(
private val context: Context,
@ -53,8 +51,8 @@ class SoundsOfNatureAdapter(
val s = getAudioDurationFromAssets(context, audio.file)
desc.text = convertMillisToMinutesAndSecondsString(s)
if (App.currentPlayingAudio != null) {
if (App.currentPlayingAudio?.file == audio.file) {
if (relax.offline.music.App.currentPlayingAudio != null) {
if (relax.offline.music.App.currentPlayingAudio?.file == audio.file) {
playingLayout.visibility = View.VISIBLE
name.setTextColor(context.getColor(R.color.green))
desc.setTextColor(context.getColor(R.color.green))

View File

@ -1,17 +1,16 @@
package com.player.musicoo.adapter
package relax.offline.music.adapter
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.player.musicoo.activity.MoListDetailsActivity
import com.player.musicoo.activity.MoPlayDetailsActivity
import com.player.musicoo.activity.MoSingerDetailsActivity
import com.player.musicoo.databinding.MusicTowRowItemBinding
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import relax.offline.music.activity.MoListDetailsActivity
import relax.offline.music.activity.MoPlayDetailsActivity
import relax.offline.music.activity.MoSingerDetailsActivity
import relax.offline.music.databinding.MusicTowRowItemBinding
import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
class TowRowListAdapter(
private val context: Activity,

View File

@ -1,4 +1,4 @@
package com.player.musicoo.bean
package relax.offline.music.bean
import androidx.annotation.Keep
import androidx.room.ColumnInfo

View File

@ -1,4 +1,4 @@
package com.player.musicoo.bean
package relax.offline.music.bean
import java.io.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.bean
package relax.offline.music.bean
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@ -1,6 +1,5 @@
package com.player.musicoo.bean
package relax.offline.music.bean
import android.net.Uri
import androidx.annotation.Keep
import androidx.room.ColumnInfo
import androidx.room.Entity

View File

@ -1,4 +1,4 @@
package com.player.musicoo.bean
package relax.offline.music.bean
import java.io.Serializable

View File

@ -1,9 +1,9 @@
package com.player.musicoo.database
package relax.offline.music.database
import androidx.room.Database
import androidx.room.RoomDatabase
import com.player.musicoo.bean.Audio
import relax.offline.music.bean.Audio
@Database(entities = [Audio::class], version = 1, exportSchema = false)
abstract class AppDatabase : RoomDatabase() {

View File

@ -1,9 +1,9 @@
package com.player.musicoo.database
package relax.offline.music.database
import android.content.Context
import androidx.room.Room
import com.player.musicoo.bean.OfflineBean
import com.player.musicoo.util.LogTag
import relax.offline.music.bean.OfflineBean
import relax.offline.music.util.LogTag
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

View File

@ -1,9 +1,9 @@
package com.player.musicoo.database
package relax.offline.music.database
import androidx.room.Database
import androidx.room.RoomDatabase
import com.player.musicoo.bean.OfflineBean
import relax.offline.music.bean.OfflineBean
@Database(entities = [OfflineBean::class], version = 1, exportSchema = false)
abstract class AppOfflineDatabase : RoomDatabase() {

View File

@ -1,9 +1,9 @@
package com.player.musicoo.database
package relax.offline.music.database
import androidx.room.Database
import androidx.room.RoomDatabase
import com.player.musicoo.bean.CurrentPlayingAudio
import relax.offline.music.bean.CurrentPlayingAudio
@Database(entities = [CurrentPlayingAudio::class], version = 1, exportSchema = false)
abstract class CurrentAudioDatabase : RoomDatabase() {

View File

@ -1,8 +1,8 @@
package com.player.musicoo.database
package relax.offline.music.database
import android.content.Context
import androidx.room.Room
import com.player.musicoo.bean.CurrentPlayingAudio
import relax.offline.music.bean.CurrentPlayingAudio
class CurrentAudioManager private constructor(context: Context) {
private val database: CurrentAudioDatabase = Room.databaseBuilder(

View File

@ -1,4 +1,4 @@
package com.player.musicoo.database
package relax.offline.music.database
import androidx.room.Dao
import androidx.room.Delete
@ -6,7 +6,7 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query
import androidx.room.Update
import com.player.musicoo.bean.CurrentPlayingAudio
import relax.offline.music.bean.CurrentPlayingAudio
@Dao
interface CurrentPlayingAudioDao {

View File

@ -1,8 +1,8 @@
package com.player.musicoo.database
package relax.offline.music.database
import android.content.Context
import androidx.room.Room
import com.player.musicoo.bean.Audio
import relax.offline.music.bean.Audio
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

View File

@ -1,9 +1,9 @@
package com.player.musicoo.database
package relax.offline.music.database
import androidx.room.*
import com.player.musicoo.bean.Audio
import relax.offline.music.bean.Audio
@Dao
interface LocalAudioDao {

View File

@ -1,7 +1,7 @@
package com.player.musicoo.database
package relax.offline.music.database
import androidx.room.*
import com.player.musicoo.bean.OfflineBean
import relax.offline.music.bean.OfflineBean
@Dao
interface OfflineDao {

View File

@ -1,4 +1,4 @@
package com.player.musicoo.fragment
package relax.offline.music.fragment
import android.annotation.SuppressLint
import android.os.Bundle
@ -9,14 +9,11 @@ import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.adapter.RealHumanVoiceAdapter
import com.player.musicoo.adapter.SoundsOfAppliancesAdapter
import com.player.musicoo.adapter.SoundsOfNatureAdapter
import com.player.musicoo.databinding.FragmentHomeBinding
import com.player.musicoo.util.GridSpacingItemDecoration
import com.player.musicoo.util.HorizontalSpaceItemDecoration
import relax.offline.music.adapter.RealHumanVoiceAdapter
import relax.offline.music.adapter.SoundsOfAppliancesAdapter
import relax.offline.music.adapter.SoundsOfNatureAdapter
import relax.offline.music.databinding.FragmentHomeBinding
import relax.offline.music.util.GridSpacingItemDecoration
class HomeFragment : Fragment() {
private lateinit var binding: FragmentHomeBinding
@ -45,28 +42,28 @@ class HomeFragment : Fragment() {
}
private fun initView() {
if (App.resourcesList.categories.isNotEmpty()) {
binding.soundsName.text = App.resourcesList.categories[1].name
binding.natureName.text = App.resourcesList.categories[2].name
if (relax.offline.music.App.resourcesList.categories.isNotEmpty()) {
binding.soundsName.text = relax.offline.music.App.resourcesList.categories[1].name
binding.natureName.text = relax.offline.music.App.resourcesList.categories[2].name
}
if (App.realHumanVoiceList.isNotEmpty()) {
realHumanVoiceAdapter = RealHumanVoiceAdapter(requireActivity(), App.realHumanVoiceList)
if (relax.offline.music.App.realHumanVoiceList.isNotEmpty()) {
realHumanVoiceAdapter = RealHumanVoiceAdapter(requireActivity(), relax.offline.music.App.realHumanVoiceList)
binding.realRv.layoutManager =
GridLayoutManager(requireActivity(), 2, GridLayoutManager.VERTICAL, false)
binding.realRv.addItemDecoration(GridSpacingItemDecoration(requireActivity(), 20, 2))
binding.realRv.adapter = realHumanVoiceAdapter
}
if (App.soundsOfAppliancesList.isNotEmpty()) {
if (relax.offline.music.App.soundsOfAppliancesList.isNotEmpty()) {
soundsOfAppliancesAdapter =
SoundsOfAppliancesAdapter(requireActivity(), App.soundsOfAppliancesList)
SoundsOfAppliancesAdapter(requireActivity(), relax.offline.music.App.soundsOfAppliancesList)
binding.soundsRv.layoutManager =
GridLayoutManager(requireActivity(), 2, GridLayoutManager.VERTICAL, false)
binding.soundsRv.addItemDecoration(GridSpacingItemDecoration(requireActivity(), 20, 2))
binding.soundsRv.adapter = soundsOfAppliancesAdapter
}
if (App.soundsOfNatureList.isNotEmpty()) {
if (relax.offline.music.App.soundsOfNatureList.isNotEmpty()) {
soundsOfNatureAdapter =
SoundsOfNatureAdapter(requireActivity(), App.soundsOfNatureList)
SoundsOfNatureAdapter(requireActivity(), relax.offline.music.App.soundsOfNatureList)
binding.natureRv.layoutManager =
LinearLayoutManager(requireActivity(), LinearLayoutManager.VERTICAL, false)
binding.natureRv.adapter = soundsOfNatureAdapter
@ -76,26 +73,26 @@ class HomeFragment : Fragment() {
@SuppressLint("NotifyDataSetChanged")
override fun onResume() {
super.onResume()
if (App.currentPlayingAudio != null) {
if (App.realHumanVoiceList.isNotEmpty()) {
for ((index, audio) in App.realHumanVoiceList.withIndex()) {
if (audio.file == App.currentPlayingAudio?.file) {
if (relax.offline.music.App.currentPlayingAudio != null) {
if (relax.offline.music.App.realHumanVoiceList.isNotEmpty()) {
for ((index, audio) in relax.offline.music.App.realHumanVoiceList.withIndex()) {
if (audio.file == relax.offline.music.App.currentPlayingAudio?.file) {
notifyDataSetChanged()
break
}
}
}
if (App.soundsOfAppliancesList.isNotEmpty()) {
for ((index, audio) in App.soundsOfAppliancesList.withIndex()) {
if (audio.file == App.currentPlayingAudio?.file) {
if (relax.offline.music.App.soundsOfAppliancesList.isNotEmpty()) {
for ((index, audio) in relax.offline.music.App.soundsOfAppliancesList.withIndex()) {
if (audio.file == relax.offline.music.App.currentPlayingAudio?.file) {
notifyDataSetChanged()
break
}
}
}
if (App.soundsOfNatureList.isNotEmpty()) {
for ((index, audio) in App.soundsOfNatureList.withIndex()) {
if (audio.file == App.currentPlayingAudio?.file) {
if (relax.offline.music.App.soundsOfNatureList.isNotEmpty()) {
for ((index, audio) in relax.offline.music.App.soundsOfNatureList.withIndex()) {
if (audio.file == relax.offline.music.App.currentPlayingAudio?.file) {
notifyDataSetChanged()
break
}

View File

@ -1,4 +1,4 @@
package com.player.musicoo.fragment
package relax.offline.music.fragment
import android.Manifest
import android.annotation.SuppressLint
@ -12,23 +12,19 @@ import android.media.MediaPlayer
import android.net.Uri
import android.os.Bundle
import android.provider.MediaStore
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.App
import com.player.musicoo.R
import com.player.musicoo.activity.SettingsActivity
import com.player.musicoo.adapter.ParentsVoiceAdapter
import com.player.musicoo.bean.Audio
import com.player.musicoo.databinding.FragmentImportBinding
import com.player.musicoo.util.uriToFile
import relax.offline.music.R
import relax.offline.music.activity.SettingsActivity
import relax.offline.music.adapter.ParentsVoiceAdapter
import relax.offline.music.bean.Audio
import relax.offline.music.databinding.FragmentImportBinding
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@ -70,7 +66,7 @@ class ImportFragment : Fragment() {
}
}
importAdapterList.clear()
importAdapterList.addAll(App.importList)
importAdapterList.addAll(relax.offline.music.App.importList)
parentsVoiceAdapter = ParentsVoiceAdapter(requireActivity(), importAdapterList)
binding.importRv.layoutManager =
LinearLayoutManager(requireActivity(), LinearLayoutManager.VERTICAL, false)
@ -116,12 +112,12 @@ class ImportFragment : Fragment() {
binding.noContentLayout.visibility = View.VISIBLE
}
if (App.currentPlayingAudio != null) {
if (App.importList.isNotEmpty()) {
if (relax.offline.music.App.currentPlayingAudio != null) {
if (relax.offline.music.App.importList.isNotEmpty()) {
importAdapterList.clear()
importAdapterList.addAll(App.importList)
importAdapterList.addAll(relax.offline.music.App.importList)
for ((index, audio) in importAdapterList.withIndex()) {
if (audio.file == App.currentPlayingAudio?.file) {
if (audio.file == relax.offline.music.App.currentPlayingAudio?.file) {
parentsVoiceAdapter?.notifyDataSetChanged()
break
}
@ -203,12 +199,12 @@ class ImportFragment : Fragment() {
CoroutineScope(Dispatchers.IO).launch {
if (audio.duration > 0) {
App.databaseManager.insertAudioFile(audio)
relax.offline.music.App.databaseManager.insertAudioFile(audio)
}
withContext(Dispatchers.Main) {
App.initImportAudio {
relax.offline.music.App.initImportAudio {
importAdapterList.clear()
importAdapterList.addAll(App.importList)
importAdapterList.addAll(relax.offline.music.App.importList)
parentsVoiceAdapter?.notifyDataSetChanged()
if (importAdapterList.isNotEmpty()) {
binding.noContentLayout.visibility = View.GONE

View File

@ -1,4 +1,4 @@
package com.player.musicoo.fragment
package relax.offline.music.fragment
import android.os.Bundle
import android.view.LayoutInflater
@ -6,9 +6,8 @@ import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.viewbinding.ViewBinding
import com.player.musicoo.activity.MoBaseActivity
import com.player.musicoo.sp.AppStore
import com.player.musicoo.util.LogTag
import relax.offline.music.sp.AppStore
import relax.offline.music.util.LogTag
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.cancel

View File

@ -1,18 +1,17 @@
package com.player.musicoo.fragment
package relax.offline.music.fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.view.allViews
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.databinding.FragmentMoHomeBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.requests.homePage
import com.player.musicoo.innertube.requests.homePageMore
import com.player.musicoo.util.LogTag.LogD
import com.player.musicoo.view.MusicResponsiveListView
import com.player.musicoo.view.MusicTowRowListView
import relax.offline.music.databinding.FragmentMoHomeBinding
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import relax.offline.music.innertube.requests.homePage
import relax.offline.music.innertube.requests.homePageMore
import relax.offline.music.util.LogTag.LogD
import relax.offline.music.view.MusicResponsiveListView
import relax.offline.music.view.MusicTowRowListView
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select

View File

@ -1,15 +1,14 @@
package com.player.musicoo.fragment
package relax.offline.music.fragment
import android.content.Intent
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.Toast
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.R
import com.player.musicoo.activity.MoOfflineSongsActivity
import com.player.musicoo.databinding.FragmentMoMeBinding
import com.player.musicoo.innertube.utils.BrotliEncoder.decode
import com.player.musicoo.util.DownloadUtil
import relax.offline.music.R
import relax.offline.music.activity.MoOfflineSongsActivity
import relax.offline.music.databinding.FragmentMoMeBinding
import relax.offline.music.util.DownloadUtil
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select

View File

@ -1,4 +1,4 @@
package com.player.musicoo.fragment
package relax.offline.music.fragment
import android.annotation.SuppressLint
import android.content.Context
@ -20,17 +20,17 @@ import com.google.android.flexbox.FlexWrap
import com.google.android.flexbox.FlexboxLayoutManager
import com.google.android.flexbox.JustifyContent
import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.adapter.SearchHistoryAdapter
import com.player.musicoo.adapter.SearchSuggestionsAdapter
import com.player.musicoo.databinding.FragmentSearchBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.bodies.SearchBody
import com.player.musicoo.innertube.models.bodies.SearchSuggestionsBody
import com.player.musicoo.innertube.requests.moSearchPage
import com.player.musicoo.innertube.requests.searchSuggestions
import com.player.musicoo.util.LogTag
import com.player.musicoo.view.SearchResultOptimalView
import com.player.musicoo.view.SearchResultOtherView
import relax.offline.music.adapter.SearchHistoryAdapter
import relax.offline.music.adapter.SearchSuggestionsAdapter
import relax.offline.music.databinding.FragmentSearchBinding
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.bodies.SearchBody
import relax.offline.music.innertube.models.bodies.SearchSuggestionsBody
import relax.offline.music.innertube.requests.moSearchPage
import relax.offline.music.innertube.requests.searchSuggestions
import relax.offline.music.util.LogTag
import relax.offline.music.view.SearchResultOptimalView
import relax.offline.music.view.SearchResultOtherView
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select

View File

@ -1,12 +1,12 @@
package com.player.musicoo.innertube
package relax.offline.music.innertube
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.NavigationEndpoint
import com.player.musicoo.innertube.models.Runs
import com.player.musicoo.innertube.models.Thumbnail
import com.player.musicoo.innertube.utils.brotli
import com.player.musicoo.util.LogTag
import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import relax.offline.music.innertube.models.MusicShelfRenderer
import relax.offline.music.innertube.models.NavigationEndpoint
import relax.offline.music.innertube.models.Runs
import relax.offline.music.innertube.models.Thumbnail
import relax.offline.music.innertube.utils.brotli
import relax.offline.music.util.LogTag
import io.ktor.client.HttpClient
import io.ktor.client.engine.okhttp.OkHttp
import io.ktor.client.plugins.BrowserUserAgent

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable
import java.util.Locale

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable
@ -19,7 +19,7 @@ data class MusicCardShelfRenderer(
) {
@Serializable
data class Thumbnail(
val thumbnails: List<com.player.musicoo.innertube.models.Thumbnail>?
val thumbnails: List<relax.offline.music.innertube.models.Thumbnail>?
)
}
}

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,6 +1,5 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable
@Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models
package relax.offline.music.innertube.models
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.Serializable
@ -16,7 +16,7 @@ data class ThumbnailRenderer(
) {
@Serializable
data class Thumbnail(
val thumbnails: List<com.player.musicoo.innertube.models.Thumbnail>?
val thumbnails: List<relax.offline.music.innertube.models.Thumbnail>?
)
}
}

View File

@ -1,6 +1,6 @@
package com.player.musicoo.innertube.models.bodies
package relax.offline.music.innertube.models.bodies
import com.player.musicoo.innertube.models.Context
import relax.offline.music.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@ -1,6 +1,6 @@
package com.player.musicoo.innertube.models.bodies
package relax.offline.music.innertube.models.bodies
import com.player.musicoo.innertube.models.Context
import relax.offline.music.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@ -1,6 +1,6 @@
package com.player.musicoo.innertube.models.bodies
package relax.offline.music.innertube.models.bodies
import com.player.musicoo.innertube.models.Context
import relax.offline.music.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@ -1,6 +1,6 @@
package com.player.musicoo.innertube.models.bodies
package relax.offline.music.innertube.models.bodies
import com.player.musicoo.innertube.models.Context
import relax.offline.music.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@ -1,6 +1,6 @@
package com.player.musicoo.innertube.models.bodies
package relax.offline.music.innertube.models.bodies
import com.player.musicoo.innertube.models.Context
import relax.offline.music.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@ -1,6 +1,6 @@
package com.player.musicoo.innertube.models.bodies
package relax.offline.music.innertube.models.bodies
import com.player.musicoo.innertube.models.Context
import relax.offline.music.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@ -1,6 +1,6 @@
package com.player.musicoo.innertube.models.bodies
package relax.offline.music.innertube.models.bodies
import com.player.musicoo.innertube.models.Context
import relax.offline.music.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@ -1,6 +1,6 @@
package com.player.musicoo.innertube.models.bodies
package relax.offline.music.innertube.models.bodies
import com.player.musicoo.innertube.models.Context
import relax.offline.music.innertube.models.Context
import kotlinx.serialization.Serializable
@Serializable

View File

@ -1,9 +1,9 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.http.Url
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.NavigationEndpoint
import com.player.musicoo.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.NavigationEndpoint
import relax.offline.music.innertube.models.bodies.BrowseBody
suspend fun Innertube.albumPage(body: BrowseBody): Result<Innertube.PlaylistOrAlbumPage>? {
return playlistPage(body)?.map { album ->

View File

@ -1,17 +1,17 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.SectionListRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.utils.findSectionByTitle
import com.player.musicoo.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.BrowseResponse
import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import relax.offline.music.innertube.models.MusicShelfRenderer
import relax.offline.music.innertube.models.SectionListRenderer
import relax.offline.music.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.utils.findSectionByTitle
import relax.offline.music.innertube.utils.from
import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.artistPage(body: BrowseBody): Result<Innertube.ArtistPage>? =
runCatchingNonCancellable {

View File

@ -1,14 +1,12 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import com.player.musicoo.App
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.Context
import com.player.musicoo.innertube.models.SectionListRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.sp.AppStore
import com.player.musicoo.util.LogTag
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.BrowseResponse
import relax.offline.music.innertube.models.Context
import relax.offline.music.innertube.models.SectionListRenderer
import relax.offline.music.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.utils.runCatchingNonCancellable
import relax.offline.music.util.LogTag
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody

View File

@ -1,13 +1,11 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import com.player.musicoo.App
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.Context
import com.player.musicoo.innertube.models.SectionListContinuation
import com.player.musicoo.innertube.models.bodies.BrowseMoreBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.sp.AppStore
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.BrowseResponse
import relax.offline.music.innertube.models.Context
import relax.offline.music.innertube.models.SectionListContinuation
import relax.offline.music.innertube.models.bodies.BrowseMoreBody
import relax.offline.music.innertube.utils.runCatchingNonCancellable
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody

View File

@ -1,18 +1,18 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.GridRenderer
import com.player.musicoo.innertube.models.MusicResponsiveListItemRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.MusicTwoRowItemRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.BrowseResponse
import relax.offline.music.innertube.models.ContinuationResponse
import relax.offline.music.innertube.models.GridRenderer
import relax.offline.music.innertube.models.MusicResponsiveListItemRenderer
import relax.offline.music.innertube.models.MusicShelfRenderer
import relax.offline.music.innertube.models.MusicTwoRowItemRenderer
import relax.offline.music.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.models.bodies.ContinuationBody
import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun <T : Innertube.Item> Innertube.itemsPage(
body: BrowseBody,

View File

@ -1,14 +1,14 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.NextResponse
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.NextBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.BrowseResponse
import relax.offline.music.innertube.models.NextResponse
import relax.offline.music.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.models.bodies.NextBody
import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.lyrics(body: NextBody): Result<String?>? = runCatchingNonCancellable {
val nextResponse = client.post(next) {

View File

@ -1,15 +1,12 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.NextResponse
import com.player.musicoo.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.models.bodies.NextBody
import com.player.musicoo.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.NextResponse
import relax.offline.music.innertube.models.bodies.NextBody
import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.moNextPage(

View File

@ -1,13 +1,10 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import com.player.musicoo.App
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.sp.AppStore
import com.player.musicoo.util.LogTag
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.BrowseResponse
import relax.offline.music.innertube.models.MusicShelfRenderer
import relax.offline.music.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.utils.runCatchingNonCancellable
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody

View File

@ -1,16 +1,13 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.SearchResponse
import com.player.musicoo.innertube.models.SectionListRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.models.bodies.SearchBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.util.LogTag
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.ContinuationResponse
import relax.offline.music.innertube.models.MusicShelfRenderer
import relax.offline.music.innertube.models.SearchResponse
import relax.offline.music.innertube.models.SectionListRenderer
import relax.offline.music.innertube.models.bodies.ContinuationBody
import relax.offline.music.innertube.models.bodies.SearchBody
import relax.offline.music.innertube.utils.runCatchingNonCancellable
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody

View File

@ -1,18 +1,15 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import com.player.musicoo.App
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.GridRenderer
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.SectionListRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.sp.AppStore
import com.player.musicoo.util.LogTag
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.BrowseResponse
import relax.offline.music.innertube.models.ContinuationResponse
import relax.offline.music.innertube.models.GridRenderer
import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import relax.offline.music.innertube.models.MusicShelfRenderer
import relax.offline.music.innertube.models.SectionListRenderer
import relax.offline.music.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.models.bodies.ContinuationBody
import relax.offline.music.innertube.utils.runCatchingNonCancellable
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody

View File

@ -1,15 +1,15 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.NextResponse
import com.player.musicoo.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.models.bodies.NextBody
import com.player.musicoo.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.ContinuationResponse
import relax.offline.music.innertube.models.NextResponse
import relax.offline.music.innertube.models.bodies.ContinuationBody
import relax.offline.music.innertube.models.bodies.NextBody
import relax.offline.music.innertube.utils.from
import relax.offline.music.innertube.utils.runCatchingNonCancellable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.get
@ -6,11 +6,11 @@ import io.ktor.client.request.post
import io.ktor.client.request.setBody
import io.ktor.http.ContentType
import io.ktor.http.contentType
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.Context
import com.player.musicoo.innertube.models.PlayerResponse
import com.player.musicoo.innertube.models.bodies.PlayerBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.Context
import relax.offline.music.innertube.models.PlayerResponse
import relax.offline.music.innertube.models.bodies.PlayerBody
import relax.offline.music.innertube.utils.runCatchingNonCancellable
import kotlinx.serialization.Serializable
suspend fun Innertube.player(body: PlayerBody) = runCatchingNonCancellable {

View File

@ -1,17 +1,17 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.BrowseResponse
import relax.offline.music.innertube.models.ContinuationResponse
import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import relax.offline.music.innertube.models.MusicShelfRenderer
import relax.offline.music.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.models.bodies.ContinuationBody
import relax.offline.music.innertube.utils.from
import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.playlistPage(body: BrowseBody) = runCatchingNonCancellable {
val response = client.post(browse) {

View File

@ -1,13 +1,13 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.GetQueueResponse
import com.player.musicoo.innertube.models.bodies.QueueBody
import com.player.musicoo.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.GetQueueResponse
import relax.offline.music.innertube.models.bodies.QueueBody
import relax.offline.music.innertube.utils.from
import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.queue(body: QueueBody) = runCatchingNonCancellable {
val response = client.post(queue) {

View File

@ -1,18 +1,18 @@
package com.player.musicoo.innertube.requests
package relax.offline.music.innertube.requests
import io.ktor.client.call.body
import io.ktor.client.request.post
import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.NextResponse
import com.player.musicoo.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.NextBody
import com.player.musicoo.innertube.utils.findSectionByStrapline
import com.player.musicoo.innertube.utils.findSectionByTitle
import com.player.musicoo.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import relax.offline.music.innertube.Innertube
import relax.offline.music.innertube.models.BrowseResponse
import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import relax.offline.music.innertube.models.NextResponse
import relax.offline.music.innertube.models.bodies.BrowseBody
import relax.offline.music.innertube.models.bodies.NextBody
import relax.offline.music.innertube.utils.findSectionByStrapline
import relax.offline.music.innertube.utils.findSectionByTitle
import relax.offline.music.innertube.utils.from
import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.relatedPage(body: NextBody) = runCatchingNonCancellable {
val nextResponse = client.post(next) {

Some files were not shown because too many files have changed in this diff Show More