更换包名

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

View File

@ -1,4 +1,4 @@
package com.player.musicoo package relax.offline.music
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
@ -19,6 +19,6 @@ class ExampleInstrumentedTest {
fun useAppContext() { fun useAppContext() {
// Context of the app under test. // Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext 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" /> android:maxSdkVersion="32" />
<application <application
android:name=".App" android:name="relax.offline.music.App"
android:allowBackup="true" android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules" android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules" android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/musicoo_logo_img" android:icon="@mipmap/app_logo"
android:label="@string/app_name" android:label="@string/app_name"
android:roundIcon="@mipmap/musicoo_logo_img" android:roundIcon="@mipmap/app_logo"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.Musicoo" android:theme="@style/Theme.Musiclax"
tools:targetApi="31"> tools:targetApi="31">
<activity <activity
android:name=".activity.LaunchActivity" android:name=".activity.LaunchActivity"

View File

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

View File

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

View File

@ -1,4 +1,4 @@
package com.player.musicoo.activity package relax.offline.music.activity
import android.content.Context import android.content.Context
import android.graphics.Bitmap import android.graphics.Bitmap
@ -19,20 +19,13 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner
import androidx.media3.common.Player import androidx.media3.common.Player
import androidx.media3.common.util.UnstableApi import androidx.media3.common.util.UnstableApi
import androidx.media3.exoplayer.offline.Download
import androidx.media3.exoplayer.offline.DownloadManager import androidx.media3.exoplayer.offline.DownloadManager
import com.player.musicoo.App import relax.offline.music.R
import com.player.musicoo.R import relax.offline.music.media.MediaControllerManager
import com.player.musicoo.bean.OfflineBean import relax.offline.music.sp.AppStore
import com.player.musicoo.innertube.Innertube import relax.offline.music.util.LogTag
import com.player.musicoo.media.MediaControllerManager import relax.offline.music.view.MusicPlayerView
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 kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope import kotlinx.coroutines.MainScope
import kotlinx.coroutines.NonCancellable import kotlinx.coroutines.NonCancellable
import kotlinx.coroutines.channels.Channel 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.annotation.SuppressLint
import android.view.View import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.adapter.DetailsListAdapter import relax.offline.music.adapter.DetailsListAdapter
import com.player.musicoo.databinding.ActivityDetailsBinding import relax.offline.music.databinding.ActivityDetailsBinding
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.requests.moPlaylistPage import relax.offline.music.innertube.requests.moPlaylistPage
import com.player.musicoo.util.LogTag.LogD import relax.offline.music.util.LogTag.LogD
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select 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.annotation.SuppressLint
import android.view.View import android.view.View
import androidx.media3.common.util.UnstableApi import androidx.media3.common.util.UnstableApi
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.bumptech.glide.Glide
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.App import relax.offline.music.adapter.OfflineSongsAdapter
import com.player.musicoo.adapter.DetailsListAdapter import relax.offline.music.bean.OfflineBean
import com.player.musicoo.adapter.OfflineSongsAdapter import relax.offline.music.databinding.ActivityOfflineSongsBinding
import com.player.musicoo.bean.OfflineBean import relax.offline.music.util.LogTag.LogD
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 kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select import kotlinx.coroutines.selects.select
@ -109,7 +102,7 @@ class MoOfflineSongsActivity : MoBaseActivity() {
showLoadingUi() showLoadingUi()
offlineList.clear() offlineList.clear()
offlineList.addAll(App.appOfflineDBManager.getAllOfflineBeans()) offlineList.addAll(relax.offline.music.App.appOfflineDBManager.getAllOfflineBeans())
for (offline in offlineList){ for (offline in offlineList){
LogD(TAG,"offline id->${offline.videoId}") 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.annotation.SuppressLint
import android.graphics.Bitmap import android.graphics.Bitmap
@ -10,7 +10,6 @@ import android.view.View
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import androidx.annotation.OptIn import androidx.annotation.OptIn
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.lifecycle.LifecycleOwner
import androidx.media3.common.MediaItem import androidx.media3.common.MediaItem
import androidx.media3.common.PlaybackException import androidx.media3.common.PlaybackException
import androidx.media3.common.Player 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.target.CustomTarget
import com.bumptech.glide.request.transition.Transition import com.bumptech.glide.request.transition.Transition
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.App import relax.offline.music.R
import com.player.musicoo.R import relax.offline.music.adapter.PlayListAdapter
import com.player.musicoo.adapter.PlayListAdapter import relax.offline.music.databinding.ActivityMoPlayDetailsBinding
import com.player.musicoo.bean.OfflineBean import relax.offline.music.innertube.Innertube
import com.player.musicoo.databinding.ActivityMoPlayDetailsBinding import relax.offline.music.media.MediaControllerManager
import com.player.musicoo.innertube.Innertube import relax.offline.music.media.SongRadio
import com.player.musicoo.media.MediaControllerManager import relax.offline.music.service.MyDownloadService
import com.player.musicoo.media.SongRadio import relax.offline.music.service.ViewModelMain
import com.player.musicoo.service.MyDownloadService import relax.offline.music.sp.AppStore
import com.player.musicoo.service.ViewModelMain import relax.offline.music.util.DownloadUtil
import com.player.musicoo.sp.AppStore import relax.offline.music.util.LogTag.LogD
import com.player.musicoo.util.DownloadUtil import relax.offline.music.util.PlayMode
import com.player.musicoo.util.FileSizeConverter import relax.offline.music.util.asMediaItem
import com.player.musicoo.util.LogTag import relax.offline.music.util.convertMillisToMinutesAndSecondsString
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 kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -590,7 +584,7 @@ class MoPlayDetailsActivity : MoBaseActivity(), Player.Listener {
Glide.with(this) Glide.with(this)
.asBitmap() .asBitmap()
.load(mediaItem.mediaMetadata.artworkUri) .load(mediaItem.mediaMetadata.artworkUri)
.placeholder(R.mipmap.musicoo_logo_img) .placeholder(R.mipmap.app_logo)
.into(object : CustomTarget<Bitmap>() { .into(object : CustomTarget<Bitmap>() {
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) { override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
binding.thumbnail.setImageBitmap(resource) 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.annotation.SuppressLint
import android.view.View import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.R import relax.offline.music.adapter.SearchResultOtherAdapter
import com.player.musicoo.adapter.DetailsListAdapter import relax.offline.music.databinding.ActivitySearchMoreBinding
import com.player.musicoo.adapter.SearchResultOtherAdapter import relax.offline.music.innertube.Innertube
import com.player.musicoo.databinding.ActivityDetailsBinding import relax.offline.music.innertube.models.bodies.ContinuationBody
import com.player.musicoo.databinding.ActivitySearchMoreBinding import relax.offline.music.innertube.models.bodies.SearchBody
import com.player.musicoo.databinding.ActivitySingerDetailsBinding import relax.offline.music.innertube.requests.moSearchPage
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 kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select 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 android.view.View
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.databinding.ActivitySingerDetailsBinding import relax.offline.music.databinding.ActivitySingerDetailsBinding
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.requests.moSingerListPage import relax.offline.music.innertube.requests.moSingerListPage
import com.player.musicoo.util.LogTag.LogD import relax.offline.music.util.LogTag.LogD
import com.player.musicoo.view.SingerDetailsOtherView import relax.offline.music.view.SingerDetailsOtherView
import com.player.musicoo.view.SingerDetailsSongView import relax.offline.music.view.SingerDetailsSongView
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select 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.annotation.SuppressLint
import android.view.View import android.view.View
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.adapter.SingerMoreSongAdapter import relax.offline.music.adapter.SingerMoreSongAdapter
import com.player.musicoo.databinding.ActivitySearchMoreBinding import relax.offline.music.databinding.ActivitySearchMoreBinding
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody import relax.offline.music.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.requests.moSingerDetailsMoreLoadMorePage import relax.offline.music.innertube.requests.moSingerDetailsMoreLoadMorePage
import com.player.musicoo.innertube.requests.moSingerDetailsMorePage import relax.offline.music.innertube.requests.moSingerDetailsMorePage
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select 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.animation.ValueAnimator
import android.annotation.SuppressLint import android.annotation.SuppressLint
@ -21,14 +21,14 @@ import androidx.media3.common.util.UnstableApi
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.google.android.material.slider.Slider.OnChangeListener import com.google.android.material.slider.Slider.OnChangeListener
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.R import relax.offline.music.R
import com.player.musicoo.bean.Audio import relax.offline.music.bean.Audio
import com.player.musicoo.databinding.ActivityPlayDetailsBinding import relax.offline.music.databinding.ActivityPlayDetailsBinding
import com.player.musicoo.media.LocalMediaControllerManager import relax.offline.music.media.LocalMediaControllerManager
import com.player.musicoo.util.LogTag import relax.offline.music.util.LogTag
import com.player.musicoo.util.containsContent import relax.offline.music.util.containsContent
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.getAudioDurationFromAssets import relax.offline.music.util.getAudioDurationFromAssets
import java.io.IOException import java.io.IOException
import java.io.InputStream import java.io.InputStream
@ -75,8 +75,8 @@ class PlayDetailsActivity : BaseActivity() {
binding.imageView.setImageBitmap(blurredBitmap) binding.imageView.setImageBitmap(blurredBitmap)
} else { } else {
binding.image.setImageResource(R.mipmap.musicoo_logo_img) binding.image.setImageResource(R.mipmap.app_logo)
val bitmap = loadBitmapFromAsset(R.mipmap.musicoo_logo_img) val bitmap = loadBitmapFromAsset(R.mipmap.app_logo)
val blurredBitmap = applyGaussianBlur(bitmap, 25f, this) val blurredBitmap = applyGaussianBlur(bitmap, 25f, this)
binding.imageView.setImageBitmap(blurredBitmap) 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.view.View
import android.widget.Toast import android.widget.Toast
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction import androidx.fragment.app.FragmentTransaction
import androidx.media3.common.MediaItem import relax.offline.music.R
import androidx.media3.common.Player import relax.offline.music.databinding.ActivityPrimaryBinding
import com.bumptech.glide.Glide import relax.offline.music.fragment.MoHomeFragment
import com.player.musicoo.R import relax.offline.music.fragment.MoMeFragment
import com.player.musicoo.databinding.ActivityPrimaryBinding import relax.offline.music.fragment.SearchFragment
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 kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select 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.content.Intent
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.R import relax.offline.music.R
import com.player.musicoo.databinding.ActivitySettingsBinding import relax.offline.music.databinding.ActivitySettingsBinding
import com.player.musicoo.util.PRIVACY_POLICY_URL import relax.offline.music.util.PRIVACY_POLICY_URL
import com.player.musicoo.util.TERMS_OF_SERVICE_URL import relax.offline.music.util.TERMS_OF_SERVICE_URL
import com.player.musicoo.util.openPrivacyPolicy import relax.offline.music.util.openPrivacyPolicy
import com.player.musicoo.util.openTermsOfService import relax.offline.music.util.openTermsOfService
import com.player.musicoo.util.sendFeedback import relax.offline.music.util.sendFeedback
import com.player.musicoo.util.shareApp import relax.offline.music.util.shareApp
class SettingsActivity : AppCompatActivity() { class SettingsActivity : AppCompatActivity() {
private lateinit var binding: ActivitySettingsBinding 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.annotation.SuppressLint
import android.content.Context import android.content.Context
@ -6,23 +6,13 @@ import android.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.compose.ui.graphics.Color
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.App import relax.offline.music.R
import com.player.musicoo.R import relax.offline.music.activity.MoPlayDetailsActivity
import com.player.musicoo.activity.MoPlayDetailsActivity import relax.offline.music.databinding.DetailsListItemBinding
import com.player.musicoo.activity.PlayDetailsActivity import relax.offline.music.innertube.Innertube
import com.player.musicoo.bean.Audio import relax.offline.music.media.MediaControllerManager
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
class DetailsListAdapter( class DetailsListAdapter(
private val context: Context, 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.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup 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 androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.R import relax.offline.music.R
import com.player.musicoo.bean.OfflineBean import relax.offline.music.bean.OfflineBean
import com.player.musicoo.databinding.OfflineListItemBinding import relax.offline.music.databinding.OfflineListItemBinding
import com.player.musicoo.databinding.PlayListItemBinding import relax.offline.music.media.MediaControllerManager
import com.player.musicoo.media.MediaControllerManager
class OfflineSongsAdapter( class OfflineSongsAdapter(
private val context: Context, 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.Context
import android.content.Intent import android.content.Intent
import android.net.Uri
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.player.musicoo.App import relax.offline.music.R
import com.player.musicoo.R import relax.offline.music.activity.PlayDetailsActivity
import com.player.musicoo.activity.PlayDetailsActivity import relax.offline.music.bean.Audio
import com.player.musicoo.bean.Audio import relax.offline.music.databinding.ParentsVoiceLayoutBinding
import com.player.musicoo.databinding.ParentsVoiceLayoutBinding import relax.offline.music.util.containsContent
import com.player.musicoo.util.containsContent import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString import relax.offline.music.util.getAudioDurationFromAssets
import com.player.musicoo.util.getAudioDurationFromAssets
class ParentsVoiceAdapter( class ParentsVoiceAdapter(
private val context: Context, private val context: Context,
@ -44,7 +42,7 @@ class ParentsVoiceAdapter(
fun bind(audio: Audio) { fun bind(audio: Audio) {
binding.apply { binding.apply {
image.setImageResource(R.mipmap.musicoo_logo_img) image.setImageResource(R.mipmap.app_logo)
name.text = audio.name name.text = audio.name
name.requestFocus() name.requestFocus()
if (containsContent(audio.file)) { if (containsContent(audio.file)) {
@ -54,8 +52,8 @@ class ParentsVoiceAdapter(
desc.text = convertMillisToMinutesAndSecondsString(s) desc.text = convertMillisToMinutesAndSecondsString(s)
} }
if (App.currentPlayingAudio != null) { if (relax.offline.music.App.currentPlayingAudio != null) {
if (App.currentPlayingAudio?.file == audio.file) { if (relax.offline.music.App.currentPlayingAudio?.file == audio.file) {
playingLayout.visibility = View.VISIBLE playingLayout.visibility = View.VISIBLE
name.setTextColor(context.getColor(R.color.green)) name.setTextColor(context.getColor(R.color.green))
desc.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.annotation.SuppressLint
import android.content.Context import android.content.Context
@ -7,12 +7,11 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.media3.common.C import androidx.media3.common.C
import androidx.media3.common.MediaItem import androidx.media3.common.MediaItem
import androidx.media3.common.Player
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.R import relax.offline.music.R
import com.player.musicoo.databinding.PlayListItemBinding import relax.offline.music.databinding.PlayListItemBinding
import com.player.musicoo.media.MediaControllerManager import relax.offline.music.media.MediaControllerManager
class PlayListAdapter( class PlayListAdapter(
private val context: Context, 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.Context
import android.content.Intent import android.content.Intent
@ -6,13 +6,12 @@ import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.App import relax.offline.music.R
import com.player.musicoo.R import relax.offline.music.activity.PlayDetailsActivity
import com.player.musicoo.activity.PlayDetailsActivity import relax.offline.music.bean.Audio
import com.player.musicoo.bean.Audio import relax.offline.music.databinding.RealHumanVoiceLayoutBinding
import com.player.musicoo.databinding.RealHumanVoiceLayoutBinding import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString import relax.offline.music.util.getAudioDurationFromAssets
import com.player.musicoo.util.getAudioDurationFromAssets
class RealHumanVoiceAdapter( class RealHumanVoiceAdapter(
private val context: Context, private val context: Context,
@ -50,8 +49,8 @@ class RealHumanVoiceAdapter(
val s = getAudioDurationFromAssets(context, audio.file) val s = getAudioDurationFromAssets(context, audio.file)
desc.text = convertMillisToMinutesAndSecondsString(s) desc.text = convertMillisToMinutesAndSecondsString(s)
if (App.currentPlayingAudio != null) { if (relax.offline.music.App.currentPlayingAudio != null) {
if (App.currentPlayingAudio?.file == audio.file) { if (relax.offline.music.App.currentPlayingAudio?.file == audio.file) {
name.setTextColor(context.getColor(R.color.green)) name.setTextColor(context.getColor(R.color.green))
desc.setTextColor(context.getColor(R.color.green)) desc.setTextColor(context.getColor(R.color.green))
} else { } else {

View File

@ -1,4 +1,4 @@
package com.player.musicoo.adapter package relax.offline.music.adapter
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
@ -7,12 +7,11 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.R import relax.offline.music.R
import com.player.musicoo.activity.MoPlayDetailsActivity import relax.offline.music.activity.MoPlayDetailsActivity
import com.player.musicoo.databinding.MusicResponsiveItemBinding import relax.offline.music.databinding.MusicResponsiveItemBinding
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.bodies.NextBody import relax.offline.music.media.MediaControllerManager
import com.player.musicoo.media.MediaControllerManager
class ResponsiveListAdapter( class ResponsiveListAdapter(
private val context: Context, 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.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.player.musicoo.databinding.SearchHistoryAdapterItemBinding import relax.offline.music.databinding.SearchHistoryAdapterItemBinding
class SearchHistoryAdapter( class SearchHistoryAdapter(
private val context: Context, 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.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup 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 androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.R import relax.offline.music.activity.MoListDetailsActivity
import com.player.musicoo.activity.MoListDetailsActivity import relax.offline.music.activity.MoPlayDetailsActivity
import com.player.musicoo.activity.MoPlayDetailsActivity import relax.offline.music.activity.MoSingerDetailsActivity
import com.player.musicoo.activity.MoSingerDetailsActivity import relax.offline.music.databinding.SearchResultOtherItemBinding
import com.player.musicoo.databinding.PlayListItemBinding import relax.offline.music.innertube.Innertube
import com.player.musicoo.databinding.SearchResultOtherItemBinding import relax.offline.music.util.LogTag
import com.player.musicoo.databinding.SearchResultOtherLayoutBinding
import com.player.musicoo.innertube.Innertube
import com.player.musicoo.media.MediaControllerManager
import com.player.musicoo.util.LogTag
class SearchResultOtherAdapter( class SearchResultOtherAdapter(
private val context: Context, 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.content.Context
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.player.musicoo.databinding.SearchSuggestionsAdapterItemBinding import relax.offline.music.databinding.SearchSuggestionsAdapterItemBinding
class SearchSuggestionsAdapter( class SearchSuggestionsAdapter(
private val context: Context, 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.annotation.SuppressLint
import android.content.Context import android.content.Context
@ -8,20 +8,9 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.App import relax.offline.music.activity.MoPlayDetailsActivity
import com.player.musicoo.R import relax.offline.music.databinding.DetailsListItemBinding
import com.player.musicoo.activity.MoPlayDetailsActivity import relax.offline.music.innertube.models.MusicShelfRenderer
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
class SingerDetailsSongListAdapter( class SingerDetailsSongListAdapter(
private val context: Context, 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.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup 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 androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.R import relax.offline.music.activity.MoListDetailsActivity
import com.player.musicoo.activity.MoListDetailsActivity import relax.offline.music.activity.MoPlayDetailsActivity
import com.player.musicoo.activity.MoPlayDetailsActivity import relax.offline.music.databinding.MusicTowRowItemBinding
import com.player.musicoo.activity.MoSingerDetailsActivity import relax.offline.music.databinding.SearchResultOtherItemBinding
import com.player.musicoo.databinding.MusicTowRowItemBinding import relax.offline.music.innertube.Innertube
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
class SingerMoreSongAdapter( class SingerMoreSongAdapter(
private val context: Context, 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.Context
import android.content.Intent import android.content.Intent
@ -7,13 +7,12 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.App import relax.offline.music.R
import com.player.musicoo.R import relax.offline.music.activity.PlayDetailsActivity
import com.player.musicoo.activity.PlayDetailsActivity import relax.offline.music.bean.Audio
import com.player.musicoo.bean.Audio import relax.offline.music.databinding.SoundsOfAppliancesLayoutBinding
import com.player.musicoo.databinding.SoundsOfAppliancesLayoutBinding import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString import relax.offline.music.util.getAudioDurationFromAssets
import com.player.musicoo.util.getAudioDurationFromAssets
class SoundsOfAppliancesAdapter( class SoundsOfAppliancesAdapter(
private val context: Context, private val context: Context,
@ -52,8 +51,8 @@ class SoundsOfAppliancesAdapter(
val s = getAudioDurationFromAssets(context, audio.file) val s = getAudioDurationFromAssets(context, audio.file)
desc.text = convertMillisToMinutesAndSecondsString(s) desc.text = convertMillisToMinutesAndSecondsString(s)
if (App.currentPlayingAudio != null) { if (relax.offline.music.App.currentPlayingAudio != null) {
if (App.currentPlayingAudio?.file == audio.file) { if (relax.offline.music.App.currentPlayingAudio?.file == audio.file) {
playingLayout.visibility = View.VISIBLE playingLayout.visibility = View.VISIBLE
name.setTextColor(context.getColor(R.color.green)) name.setTextColor(context.getColor(R.color.green))
desc.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.Context
import android.content.Intent import android.content.Intent
@ -7,14 +7,12 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.App import relax.offline.music.R
import com.player.musicoo.R import relax.offline.music.activity.PlayDetailsActivity
import com.player.musicoo.activity.PlayDetailsActivity import relax.offline.music.bean.Audio
import com.player.musicoo.bean.Audio import relax.offline.music.databinding.SoundsOfNatureLayoutBinding
import com.player.musicoo.databinding.SoundsOfAppliancesLayoutBinding import relax.offline.music.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.databinding.SoundsOfNatureLayoutBinding import relax.offline.music.util.getAudioDurationFromAssets
import com.player.musicoo.util.convertMillisToMinutesAndSecondsString
import com.player.musicoo.util.getAudioDurationFromAssets
class SoundsOfNatureAdapter( class SoundsOfNatureAdapter(
private val context: Context, private val context: Context,
@ -53,8 +51,8 @@ class SoundsOfNatureAdapter(
val s = getAudioDurationFromAssets(context, audio.file) val s = getAudioDurationFromAssets(context, audio.file)
desc.text = convertMillisToMinutesAndSecondsString(s) desc.text = convertMillisToMinutesAndSecondsString(s)
if (App.currentPlayingAudio != null) { if (relax.offline.music.App.currentPlayingAudio != null) {
if (App.currentPlayingAudio?.file == audio.file) { if (relax.offline.music.App.currentPlayingAudio?.file == audio.file) {
playingLayout.visibility = View.VISIBLE playingLayout.visibility = View.VISIBLE
name.setTextColor(context.getColor(R.color.green)) name.setTextColor(context.getColor(R.color.green))
desc.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.app.Activity
import android.content.Context
import android.content.Intent import android.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.player.musicoo.activity.MoListDetailsActivity import relax.offline.music.activity.MoListDetailsActivity
import com.player.musicoo.activity.MoPlayDetailsActivity import relax.offline.music.activity.MoPlayDetailsActivity
import com.player.musicoo.activity.MoSingerDetailsActivity import relax.offline.music.activity.MoSingerDetailsActivity
import com.player.musicoo.databinding.MusicTowRowItemBinding import relax.offline.music.databinding.MusicTowRowItemBinding
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
class TowRowListAdapter( class TowRowListAdapter(
private val context: Activity, 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.annotation.Keep
import androidx.room.ColumnInfo import androidx.room.ColumnInfo

View File

@ -1,4 +1,4 @@
package com.player.musicoo.bean package relax.offline.music.bean
import java.io.Serializable 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.ColumnInfo
import androidx.room.Entity 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.annotation.Keep
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity

View File

@ -1,4 +1,4 @@
package com.player.musicoo.bean package relax.offline.music.bean
import java.io.Serializable 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.Database
import androidx.room.RoomDatabase import androidx.room.RoomDatabase
import com.player.musicoo.bean.Audio import relax.offline.music.bean.Audio
@Database(entities = [Audio::class], version = 1, exportSchema = false) @Database(entities = [Audio::class], version = 1, exportSchema = false)
abstract class AppDatabase : RoomDatabase() { 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 android.content.Context
import androidx.room.Room import androidx.room.Room
import com.player.musicoo.bean.OfflineBean import relax.offline.music.bean.OfflineBean
import com.player.musicoo.util.LogTag import relax.offline.music.util.LogTag
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext 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.Database
import androidx.room.RoomDatabase import androidx.room.RoomDatabase
import com.player.musicoo.bean.OfflineBean import relax.offline.music.bean.OfflineBean
@Database(entities = [OfflineBean::class], version = 1, exportSchema = false) @Database(entities = [OfflineBean::class], version = 1, exportSchema = false)
abstract class AppOfflineDatabase : RoomDatabase() { 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.Database
import androidx.room.RoomDatabase import androidx.room.RoomDatabase
import com.player.musicoo.bean.CurrentPlayingAudio import relax.offline.music.bean.CurrentPlayingAudio
@Database(entities = [CurrentPlayingAudio::class], version = 1, exportSchema = false) @Database(entities = [CurrentPlayingAudio::class], version = 1, exportSchema = false)
abstract class CurrentAudioDatabase : RoomDatabase() { 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 android.content.Context
import androidx.room.Room import androidx.room.Room
import com.player.musicoo.bean.CurrentPlayingAudio import relax.offline.music.bean.CurrentPlayingAudio
class CurrentAudioManager private constructor(context: Context) { class CurrentAudioManager private constructor(context: Context) {
private val database: CurrentAudioDatabase = Room.databaseBuilder( 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.Dao
import androidx.room.Delete import androidx.room.Delete
@ -6,7 +6,7 @@ import androidx.room.Insert
import androidx.room.OnConflictStrategy import androidx.room.OnConflictStrategy
import androidx.room.Query import androidx.room.Query
import androidx.room.Update import androidx.room.Update
import com.player.musicoo.bean.CurrentPlayingAudio import relax.offline.music.bean.CurrentPlayingAudio
@Dao @Dao
interface CurrentPlayingAudioDao { interface CurrentPlayingAudioDao {

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
package com.player.musicoo.fragment package relax.offline.music.fragment
import android.Manifest import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
@ -12,23 +12,19 @@ import android.media.MediaPlayer
import android.net.Uri import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.provider.MediaStore import android.provider.MediaStore
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.App import relax.offline.music.R
import com.player.musicoo.R import relax.offline.music.activity.SettingsActivity
import com.player.musicoo.activity.SettingsActivity import relax.offline.music.adapter.ParentsVoiceAdapter
import com.player.musicoo.adapter.ParentsVoiceAdapter import relax.offline.music.bean.Audio
import com.player.musicoo.bean.Audio import relax.offline.music.databinding.FragmentImportBinding
import com.player.musicoo.databinding.FragmentImportBinding
import com.player.musicoo.util.uriToFile
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -70,7 +66,7 @@ class ImportFragment : Fragment() {
} }
} }
importAdapterList.clear() importAdapterList.clear()
importAdapterList.addAll(App.importList) importAdapterList.addAll(relax.offline.music.App.importList)
parentsVoiceAdapter = ParentsVoiceAdapter(requireActivity(), importAdapterList) parentsVoiceAdapter = ParentsVoiceAdapter(requireActivity(), importAdapterList)
binding.importRv.layoutManager = binding.importRv.layoutManager =
LinearLayoutManager(requireActivity(), LinearLayoutManager.VERTICAL, false) LinearLayoutManager(requireActivity(), LinearLayoutManager.VERTICAL, false)
@ -116,12 +112,12 @@ class ImportFragment : Fragment() {
binding.noContentLayout.visibility = View.VISIBLE binding.noContentLayout.visibility = View.VISIBLE
} }
if (App.currentPlayingAudio != null) { if (relax.offline.music.App.currentPlayingAudio != null) {
if (App.importList.isNotEmpty()) { if (relax.offline.music.App.importList.isNotEmpty()) {
importAdapterList.clear() importAdapterList.clear()
importAdapterList.addAll(App.importList) importAdapterList.addAll(relax.offline.music.App.importList)
for ((index, audio) in importAdapterList.withIndex()) { for ((index, audio) in importAdapterList.withIndex()) {
if (audio.file == App.currentPlayingAudio?.file) { if (audio.file == relax.offline.music.App.currentPlayingAudio?.file) {
parentsVoiceAdapter?.notifyDataSetChanged() parentsVoiceAdapter?.notifyDataSetChanged()
break break
} }
@ -203,12 +199,12 @@ class ImportFragment : Fragment() {
CoroutineScope(Dispatchers.IO).launch { CoroutineScope(Dispatchers.IO).launch {
if (audio.duration > 0) { if (audio.duration > 0) {
App.databaseManager.insertAudioFile(audio) relax.offline.music.App.databaseManager.insertAudioFile(audio)
} }
withContext(Dispatchers.Main) { withContext(Dispatchers.Main) {
App.initImportAudio { relax.offline.music.App.initImportAudio {
importAdapterList.clear() importAdapterList.clear()
importAdapterList.addAll(App.importList) importAdapterList.addAll(relax.offline.music.App.importList)
parentsVoiceAdapter?.notifyDataSetChanged() parentsVoiceAdapter?.notifyDataSetChanged()
if (importAdapterList.isNotEmpty()) { if (importAdapterList.isNotEmpty()) {
binding.noContentLayout.visibility = View.GONE 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.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -6,9 +6,8 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewbinding.ViewBinding import androidx.viewbinding.ViewBinding
import com.player.musicoo.activity.MoBaseActivity import relax.offline.music.sp.AppStore
import com.player.musicoo.sp.AppStore import relax.offline.music.util.LogTag
import com.player.musicoo.util.LogTag
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.MainScope import kotlinx.coroutines.MainScope
import kotlinx.coroutines.cancel 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.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.view.allViews
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.databinding.FragmentMoHomeBinding import relax.offline.music.databinding.FragmentMoHomeBinding
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.requests.homePage import relax.offline.music.innertube.requests.homePage
import com.player.musicoo.innertube.requests.homePageMore import relax.offline.music.innertube.requests.homePageMore
import com.player.musicoo.util.LogTag.LogD import relax.offline.music.util.LogTag.LogD
import com.player.musicoo.view.MusicResponsiveListView import relax.offline.music.view.MusicResponsiveListView
import com.player.musicoo.view.MusicTowRowListView import relax.offline.music.view.MusicTowRowListView
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select 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.content.Intent
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Toast import android.widget.Toast
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.R import relax.offline.music.R
import com.player.musicoo.activity.MoOfflineSongsActivity import relax.offline.music.activity.MoOfflineSongsActivity
import com.player.musicoo.databinding.FragmentMoMeBinding import relax.offline.music.databinding.FragmentMoMeBinding
import com.player.musicoo.innertube.utils.BrotliEncoder.decode import relax.offline.music.util.DownloadUtil
import com.player.musicoo.util.DownloadUtil
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select 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.annotation.SuppressLint
import android.content.Context 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.FlexboxLayoutManager
import com.google.android.flexbox.JustifyContent import com.google.android.flexbox.JustifyContent
import com.gyf.immersionbar.ktx.immersionBar import com.gyf.immersionbar.ktx.immersionBar
import com.player.musicoo.adapter.SearchHistoryAdapter import relax.offline.music.adapter.SearchHistoryAdapter
import com.player.musicoo.adapter.SearchSuggestionsAdapter import relax.offline.music.adapter.SearchSuggestionsAdapter
import com.player.musicoo.databinding.FragmentSearchBinding import relax.offline.music.databinding.FragmentSearchBinding
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.bodies.SearchBody import relax.offline.music.innertube.models.bodies.SearchBody
import com.player.musicoo.innertube.models.bodies.SearchSuggestionsBody import relax.offline.music.innertube.models.bodies.SearchSuggestionsBody
import com.player.musicoo.innertube.requests.moSearchPage import relax.offline.music.innertube.requests.moSearchPage
import com.player.musicoo.innertube.requests.searchSuggestions import relax.offline.music.innertube.requests.searchSuggestions
import com.player.musicoo.util.LogTag import relax.offline.music.util.LogTag
import com.player.musicoo.view.SearchResultOptimalView import relax.offline.music.view.SearchResultOptimalView
import com.player.musicoo.view.SearchResultOtherView import relax.offline.music.view.SearchResultOtherView
import kotlinx.coroutines.channels.Channel import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.isActive import kotlinx.coroutines.isActive
import kotlinx.coroutines.selects.select 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 relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer import relax.offline.music.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.NavigationEndpoint import relax.offline.music.innertube.models.NavigationEndpoint
import com.player.musicoo.innertube.models.Runs import relax.offline.music.innertube.models.Runs
import com.player.musicoo.innertube.models.Thumbnail import relax.offline.music.innertube.models.Thumbnail
import com.player.musicoo.innertube.utils.brotli import relax.offline.music.innertube.utils.brotli
import com.player.musicoo.util.LogTag import relax.offline.music.util.LogTag
import io.ktor.client.HttpClient import io.ktor.client.HttpClient
import io.ktor.client.engine.okhttp.OkHttp import io.ktor.client.engine.okhttp.OkHttp
import io.ktor.client.plugins.BrowserUserAgent 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.ExperimentalSerializationApi
import kotlinx.serialization.Serializable 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 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 kotlinx.serialization.Serializable
import java.util.Locale 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.ExperimentalSerializationApi
import kotlinx.serialization.Serializable 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.ExperimentalSerializationApi
import kotlinx.serialization.Serializable 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 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 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 kotlinx.serialization.Serializable
@ -19,7 +19,7 @@ data class MusicCardShelfRenderer(
) { ) {
@Serializable @Serializable
data class Thumbnail( 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 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.ExperimentalSerializationApi
import kotlinx.serialization.Serializable 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 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 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 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.ExperimentalSerializationApi
import kotlinx.serialization.Serializable 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 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 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 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 import kotlinx.serialization.Serializable
@Serializable @Serializable

View File

@ -1,4 +1,4 @@
package com.player.musicoo.innertube.models package relax.offline.music.innertube.models
import kotlinx.serialization.Serializable 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.ExperimentalSerializationApi
import kotlinx.serialization.Serializable 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.ExperimentalSerializationApi
import kotlinx.serialization.Serializable 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 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 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.ExperimentalSerializationApi
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
@ -16,7 +16,7 @@ data class ThumbnailRenderer(
) { ) {
@Serializable @Serializable
data class Thumbnail( 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 import kotlinx.serialization.Serializable
@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 import kotlinx.serialization.Serializable
@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 import kotlinx.serialization.Serializable
@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 import kotlinx.serialization.Serializable
@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 import kotlinx.serialization.Serializable
@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 import kotlinx.serialization.Serializable
@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 import kotlinx.serialization.Serializable
@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 import kotlinx.serialization.Serializable
@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 io.ktor.http.Url
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.NavigationEndpoint import relax.offline.music.innertube.models.NavigationEndpoint
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.models.bodies.BrowseBody
suspend fun Innertube.albumPage(body: BrowseBody): Result<Innertube.PlaylistOrAlbumPage>? { suspend fun Innertube.albumPage(body: BrowseBody): Result<Innertube.PlaylistOrAlbumPage>? {
return playlistPage(body)?.map { album -> 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.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer import relax.offline.music.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.SectionListRenderer import relax.offline.music.innertube.models.SectionListRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.utils.findSectionByTitle import relax.offline.music.innertube.utils.findSectionByTitle
import com.player.musicoo.innertube.utils.from import relax.offline.music.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.artistPage(body: BrowseBody): Result<Innertube.ArtistPage>? = suspend fun Innertube.artistPage(body: BrowseBody): Result<Innertube.ArtistPage>? =
runCatchingNonCancellable { 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 relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.Context
import com.player.musicoo.innertube.models.Context import relax.offline.music.innertube.models.SectionListRenderer
import com.player.musicoo.innertube.models.SectionListRenderer import relax.offline.music.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.innertube.utils.runCatchingNonCancellable import relax.offline.music.util.LogTag
import com.player.musicoo.sp.AppStore
import com.player.musicoo.util.LogTag
import io.ktor.client.call.body import io.ktor.client.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody 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 relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.Context
import com.player.musicoo.innertube.models.Context import relax.offline.music.innertube.models.SectionListContinuation
import com.player.musicoo.innertube.models.SectionListContinuation import relax.offline.music.innertube.models.bodies.BrowseMoreBody
import com.player.musicoo.innertube.models.bodies.BrowseMoreBody import relax.offline.music.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.sp.AppStore
import io.ktor.client.call.body import io.ktor.client.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody 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.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.ContinuationResponse import relax.offline.music.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.GridRenderer import relax.offline.music.innertube.models.GridRenderer
import com.player.musicoo.innertube.models.MusicResponsiveListItemRenderer import relax.offline.music.innertube.models.MusicResponsiveListItemRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer import relax.offline.music.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.MusicTwoRowItemRenderer import relax.offline.music.innertube.models.MusicTwoRowItemRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody import relax.offline.music.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun <T : Innertube.Item> Innertube.itemsPage( suspend fun <T : Innertube.Item> Innertube.itemsPage(
body: BrowseBody, 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.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.NextResponse import relax.offline.music.innertube.models.NextResponse
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.NextBody import relax.offline.music.innertube.models.bodies.NextBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.lyrics(body: NextBody): Result<String?>? = runCatchingNonCancellable { suspend fun Innertube.lyrics(body: NextBody): Result<String?>? = runCatchingNonCancellable {
val nextResponse = client.post(next) { 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.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.ContinuationResponse import relax.offline.music.innertube.models.NextResponse
import com.player.musicoo.innertube.models.NextResponse import relax.offline.music.innertube.models.bodies.NextBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody import relax.offline.music.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.innertube.models.bodies.NextBody
import com.player.musicoo.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.moNextPage( 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 relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer import relax.offline.music.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.sp.AppStore
import com.player.musicoo.util.LogTag
import io.ktor.client.call.body import io.ktor.client.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody 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 relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.ContinuationResponse import relax.offline.music.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer import relax.offline.music.innertube.models.SearchResponse
import com.player.musicoo.innertube.models.SearchResponse import relax.offline.music.innertube.models.SectionListRenderer
import com.player.musicoo.innertube.models.SectionListRenderer import relax.offline.music.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.models.bodies.SearchBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody import relax.offline.music.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.innertube.models.bodies.SearchBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.util.LogTag
import io.ktor.client.call.body import io.ktor.client.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody 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 relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.ContinuationResponse import relax.offline.music.innertube.models.GridRenderer
import com.player.musicoo.innertube.models.GridRenderer import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer import relax.offline.music.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer import relax.offline.music.innertube.models.SectionListRenderer
import com.player.musicoo.innertube.models.SectionListRenderer import relax.offline.music.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody import relax.offline.music.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.innertube.utils.runCatchingNonCancellable
import com.player.musicoo.sp.AppStore
import com.player.musicoo.util.LogTag
import io.ktor.client.call.body import io.ktor.client.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody 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.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.ContinuationResponse import relax.offline.music.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.NextResponse import relax.offline.music.innertube.models.NextResponse
import com.player.musicoo.innertube.models.bodies.ContinuationBody import relax.offline.music.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.models.bodies.NextBody import relax.offline.music.innertube.models.bodies.NextBody
import com.player.musicoo.innertube.utils.from import relax.offline.music.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable 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.call.body
import io.ktor.client.request.get 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.client.request.setBody
import io.ktor.http.ContentType import io.ktor.http.ContentType
import io.ktor.http.contentType import io.ktor.http.contentType
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.Context import relax.offline.music.innertube.models.Context
import com.player.musicoo.innertube.models.PlayerResponse import relax.offline.music.innertube.models.PlayerResponse
import com.player.musicoo.innertube.models.bodies.PlayerBody import relax.offline.music.innertube.models.bodies.PlayerBody
import com.player.musicoo.innertube.utils.runCatchingNonCancellable import relax.offline.music.innertube.utils.runCatchingNonCancellable
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
suspend fun Innertube.player(body: PlayerBody) = runCatchingNonCancellable { 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.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.ContinuationResponse import relax.offline.music.innertube.models.ContinuationResponse
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.MusicShelfRenderer import relax.offline.music.innertube.models.MusicShelfRenderer
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.ContinuationBody import relax.offline.music.innertube.models.bodies.ContinuationBody
import com.player.musicoo.innertube.utils.from import relax.offline.music.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.playlistPage(body: BrowseBody) = runCatchingNonCancellable { suspend fun Innertube.playlistPage(body: BrowseBody) = runCatchingNonCancellable {
val response = client.post(browse) { 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.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.GetQueueResponse import relax.offline.music.innertube.models.GetQueueResponse
import com.player.musicoo.innertube.models.bodies.QueueBody import relax.offline.music.innertube.models.bodies.QueueBody
import com.player.musicoo.innertube.utils.from import relax.offline.music.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.queue(body: QueueBody) = runCatchingNonCancellable { suspend fun Innertube.queue(body: QueueBody) = runCatchingNonCancellable {
val response = client.post(queue) { 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.call.body
import io.ktor.client.request.post import io.ktor.client.request.post
import io.ktor.client.request.setBody import io.ktor.client.request.setBody
import com.player.musicoo.innertube.Innertube import relax.offline.music.innertube.Innertube
import com.player.musicoo.innertube.models.BrowseResponse import relax.offline.music.innertube.models.BrowseResponse
import com.player.musicoo.innertube.models.MusicCarouselShelfRenderer import relax.offline.music.innertube.models.MusicCarouselShelfRenderer
import com.player.musicoo.innertube.models.NextResponse import relax.offline.music.innertube.models.NextResponse
import com.player.musicoo.innertube.models.bodies.BrowseBody import relax.offline.music.innertube.models.bodies.BrowseBody
import com.player.musicoo.innertube.models.bodies.NextBody import relax.offline.music.innertube.models.bodies.NextBody
import com.player.musicoo.innertube.utils.findSectionByStrapline import relax.offline.music.innertube.utils.findSectionByStrapline
import com.player.musicoo.innertube.utils.findSectionByTitle import relax.offline.music.innertube.utils.findSectionByTitle
import com.player.musicoo.innertube.utils.from import relax.offline.music.innertube.utils.from
import com.player.musicoo.innertube.utils.runCatchingNonCancellable import relax.offline.music.innertube.utils.runCatchingNonCancellable
suspend fun Innertube.relatedPage(body: NextBody) = runCatchingNonCancellable { suspend fun Innertube.relatedPage(body: NextBody) = runCatchingNonCancellable {
val nextResponse = client.post(next) { val nextResponse = client.post(next) {

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