Improved app startup time
This commit is contained in:
parent
6b83421cab
commit
d0a600e016
13 changed files with 147 additions and 153 deletions
|
@ -23,7 +23,6 @@ import androidx.navigation.contains
|
|||
import androidx.navigation.ui.setupWithNavController
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.activities.base.AbsCastActivity
|
||||
import code.name.monkey.retromusic.databinding.SlidingMusicPanelLayoutBinding
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.fragments.settings.OnThemeChangedListener
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||
|
@ -45,10 +44,6 @@ class MainActivity : AbsCastActivity(), OnThemeChangedListener {
|
|||
const val EXPAND_PANEL = "expand_panel"
|
||||
}
|
||||
|
||||
override fun createContentView(): SlidingMusicPanelLayoutBinding {
|
||||
return wrapSlidingMusicPanel()
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setTaskDescriptionColorAuto()
|
||||
|
@ -57,9 +52,7 @@ class MainActivity : AbsCastActivity(), OnThemeChangedListener {
|
|||
AppRater.appLaunched(this)
|
||||
|
||||
setupNavigationController()
|
||||
if (!hasPermissions()) {
|
||||
findNavController(R.id.fragment_container).navigate(R.id.permissionFragment)
|
||||
}
|
||||
|
||||
WhatsNewFragment.showChangeLog(this)
|
||||
}
|
||||
|
||||
|
@ -217,7 +210,7 @@ class MainActivity : AbsCastActivity(), OnThemeChangedListener {
|
|||
private fun parseLongFromIntent(
|
||||
intent: Intent,
|
||||
longKey: String,
|
||||
stringKey: String
|
||||
stringKey: String,
|
||||
): Long {
|
||||
var id = intent.getLongExtra(longKey, -1)
|
||||
if (id < 0) {
|
||||
|
|
|
@ -63,7 +63,7 @@ class PermissionActivity : AbsMusicServiceActivity() {
|
|||
binding.bluetoothPermission.setButtonClick {
|
||||
ActivityCompat.requestPermissions(this,
|
||||
arrayOf(BLUETOOTH_CONNECT),
|
||||
PERMISSION_REQUEST)
|
||||
BLUETOOTH_PERMISSION_REQUEST)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ import code.name.monkey.retromusic.BuildConfig
|
|||
import code.name.monkey.retromusic.Constants.PRO_VERSION_PRODUCT_ID
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.activities.base.AbsBaseActivity
|
||||
import code.name.monkey.retromusic.activities.base.AbsThemeActivity
|
||||
import code.name.monkey.retromusic.databinding.ActivityProVersionBinding
|
||||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.setLightStatusBar
|
||||
|
@ -33,7 +34,7 @@ import code.name.monkey.retromusic.extensions.showToast
|
|||
import com.anjlab.android.iab.v3.BillingProcessor
|
||||
import com.anjlab.android.iab.v3.PurchaseInfo
|
||||
|
||||
class PurchaseActivity : AbsBaseActivity(), BillingProcessor.IBillingHandler {
|
||||
class PurchaseActivity : AbsThemeActivity(), BillingProcessor.IBillingHandler {
|
||||
|
||||
private lateinit var binding: ActivityProVersionBinding
|
||||
private lateinit var billingProcessor: BillingProcessor
|
||||
|
|
|
@ -25,7 +25,7 @@ import androidx.core.net.toUri
|
|||
import androidx.core.view.drawToBitmap
|
||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||
import code.name.monkey.retromusic.activities.base.AbsBaseActivity
|
||||
import code.name.monkey.retromusic.activities.base.AbsThemeActivity
|
||||
import code.name.monkey.retromusic.databinding.ActivityShareInstagramBinding
|
||||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.setLightStatusBar
|
||||
|
@ -41,7 +41,7 @@ import code.name.monkey.retromusic.util.color.MediaNotificationProcessor
|
|||
* Created by hemanths on 2020-02-02.
|
||||
*/
|
||||
|
||||
class ShareInstagramStory : AbsBaseActivity() {
|
||||
class ShareInstagramStory : AbsThemeActivity() {
|
||||
|
||||
private lateinit var binding: ActivityShareInstagramBinding
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ import code.name.monkey.appthemehelper.util.TintHelper
|
|||
import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper
|
||||
import code.name.monkey.retromusic.BuildConfig
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.activities.base.AbsBaseActivity
|
||||
import code.name.monkey.retromusic.activities.base.AbsThemeActivity
|
||||
import code.name.monkey.retromusic.databinding.ActivityDonationBinding
|
||||
import code.name.monkey.retromusic.databinding.ItemDonationOptionBinding
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
|
@ -38,7 +38,7 @@ import com.anjlab.android.iab.v3.BillingProcessor
|
|||
import com.anjlab.android.iab.v3.PurchaseInfo
|
||||
import com.anjlab.android.iab.v3.SkuDetails
|
||||
|
||||
class SupportDevelopmentActivity : AbsBaseActivity(), BillingProcessor.IBillingHandler {
|
||||
class SupportDevelopmentActivity : AbsThemeActivity(), BillingProcessor.IBillingHandler {
|
||||
|
||||
lateinit var binding: ActivityDonationBinding
|
||||
|
||||
|
@ -91,8 +91,7 @@ class SupportDevelopmentActivity : AbsBaseActivity(), BillingProcessor.IBillingH
|
|||
private fun loadSkuDetails() {
|
||||
binding.progressContainer.isVisible = true
|
||||
binding.recyclerView.isVisible = false
|
||||
val ids =
|
||||
resources.getStringArray(DONATION_PRODUCT_IDS)
|
||||
val ids = resources.getStringArray(DONATION_PRODUCT_IDS)
|
||||
billingProcessor!!.getPurchaseListingDetailsAsync(
|
||||
ArrayList(listOf(*ids)),
|
||||
object : BillingProcessor.ISkuDetailsResponseListener {
|
||||
|
@ -139,7 +138,7 @@ class SupportDevelopmentActivity : AbsBaseActivity(), BillingProcessor.IBillingH
|
|||
|
||||
class SkuDetailsAdapter(
|
||||
private var donationsDialog: SupportDevelopmentActivity,
|
||||
objects: List<SkuDetails>
|
||||
objects: List<SkuDetails>,
|
||||
) : RecyclerView.Adapter<SkuDetailsAdapter.ViewHolder>() {
|
||||
|
||||
private var skuDetailsList: List<SkuDetails> = ArrayList()
|
||||
|
@ -175,7 +174,7 @@ class SkuDetailsAdapter(
|
|||
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
|
||||
val skuDetails = skuDetailsList[i]
|
||||
with(viewHolder.binding) {
|
||||
itemTitle.text = skuDetails.title.replace("Music Player - MP3 Player - Retro", "")
|
||||
itemTitle.text = skuDetails.title.replace("Retro Music Player MP3 Player", "")
|
||||
.trim { it <= ' ' }
|
||||
itemText.text = skuDetails.description
|
||||
itemText.isVisible = false
|
||||
|
@ -200,7 +199,7 @@ class SkuDetailsAdapter(
|
|||
strikeThrough(itemPrice, purchased)
|
||||
}
|
||||
|
||||
viewHolder.itemView.setOnTouchListener { _, _ -> purchased }
|
||||
viewHolder.itemView.isEnabled = !purchased
|
||||
viewHolder.itemView.setOnClickListener { donationsDialog.donate(i) }
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ import androidx.core.content.getSystemService
|
|||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.extensions.accentColor
|
||||
import code.name.monkey.retromusic.extensions.rootView
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
|
||||
abstract class AbsBaseActivity : AbsThemeActivity() {
|
||||
|
@ -52,7 +53,7 @@ abstract class AbsBaseActivity : AbsThemeActivity() {
|
|||
}
|
||||
|
||||
private val snackBarContainer: View
|
||||
get() = window.decorView
|
||||
get() = rootView
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -114,33 +115,19 @@ abstract class AbsBaseActivity : AbsThemeActivity() {
|
|||
for (grantResult in grantResults) {
|
||||
if (grantResult != PackageManager.PERMISSION_GRANTED) {
|
||||
if (ActivityCompat.shouldShowRequestPermissionRationale(
|
||||
this@AbsBaseActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||
this@AbsBaseActivity, Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
) || ActivityCompat.shouldShowRequestPermissionRationale(
|
||||
this@AbsBaseActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
)
|
||||
) {
|
||||
// User has deny from permission dialog
|
||||
Snackbar.make(
|
||||
snackBarContainer,
|
||||
permissionDeniedMessage!!,
|
||||
Snackbar.LENGTH_INDEFINITE
|
||||
Snackbar.LENGTH_SHORT
|
||||
)
|
||||
.setAction(R.string.action_grant) { requestPermissions() }
|
||||
.setActionTextColor(accentColor()).show()
|
||||
} else if (ActivityCompat.shouldShowRequestPermissionRationale(
|
||||
this@AbsBaseActivity, Manifest.permission.BLUETOOTH_CONNECT
|
||||
)
|
||||
) {
|
||||
// User has deny from permission dialog
|
||||
Snackbar.make(
|
||||
snackBarContainer,
|
||||
R.string.permission_bluetooth_denied,
|
||||
Snackbar.LENGTH_INDEFINITE
|
||||
)
|
||||
.setAction(R.string.action_grant) {
|
||||
ActivityCompat.requestPermissions(this,
|
||||
arrayOf(Manifest.permission.BLUETOOTH_CONNECT),
|
||||
PERMISSION_REQUEST)
|
||||
}
|
||||
.setActionTextColor(accentColor()).show()
|
||||
} else {
|
||||
// User has deny permission and checked never show permission dialog so you can redirect to Application settings page
|
||||
Snackbar.make(
|
||||
|
@ -165,11 +152,34 @@ abstract class AbsBaseActivity : AbsThemeActivity() {
|
|||
}
|
||||
hadPermissions = true
|
||||
onHasPermissionsChanged(true)
|
||||
} else if (requestCode == BLUETOOTH_PERMISSION_REQUEST) {
|
||||
for (grantResult in grantResults) {
|
||||
if (grantResult != PackageManager.PERMISSION_GRANTED) {
|
||||
if (ActivityCompat.shouldShowRequestPermissionRationale(
|
||||
this@AbsBaseActivity, Manifest.permission.BLUETOOTH_CONNECT
|
||||
)
|
||||
) {
|
||||
// User has deny from permission dialog
|
||||
Snackbar.make(
|
||||
snackBarContainer,
|
||||
R.string.permission_bluetooth_denied,
|
||||
Snackbar.LENGTH_SHORT
|
||||
)
|
||||
.setAction(R.string.action_grant) {
|
||||
ActivityCompat.requestPermissions(this,
|
||||
arrayOf(Manifest.permission.BLUETOOTH_CONNECT),
|
||||
BLUETOOTH_PERMISSION_REQUEST)
|
||||
}
|
||||
.setActionTextColor(accentColor()).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val PERMISSION_REQUEST = 100
|
||||
const val BLUETOOTH_PERMISSION_REQUEST = 101
|
||||
}
|
||||
|
||||
// this lets keyboard close when clicked in background
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
package code.name.monkey.retromusic.activities.base
|
||||
|
||||
import android.os.Bundle
|
||||
import code.name.monkey.retromusic.cast.RetroSessionManagerListener
|
||||
import code.name.monkey.retromusic.cast.RetroWebServer
|
||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||
import com.google.android.gms.cast.framework.CastContext
|
||||
import com.google.android.gms.cast.framework.CastSession
|
||||
import com.google.android.gms.cast.framework.SessionManager
|
||||
import com.google.android.gms.common.ConnectionResult
|
||||
import com.google.android.gms.common.GoogleApiAvailability
|
||||
import org.koin.android.ext.android.inject
|
||||
|
@ -15,10 +13,20 @@ import org.koin.android.ext.android.inject
|
|||
abstract class AbsCastActivity : AbsSlidingMusicPanelActivity() {
|
||||
|
||||
private var mCastSession: CastSession? = null
|
||||
private lateinit var sessionManager: SessionManager
|
||||
private val sessionManager by lazy {
|
||||
CastContext.getSharedInstance(this).sessionManager
|
||||
}
|
||||
|
||||
private val webServer: RetroWebServer by inject()
|
||||
|
||||
private var playServicesAvailable: Boolean = false
|
||||
private val playServicesAvailable: Boolean by lazy {
|
||||
try {
|
||||
GoogleApiAvailability
|
||||
.getInstance().isGooglePlayServicesAvailable(this) == ConnectionResult.SUCCESS
|
||||
} catch (e: Exception) {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
private val sessionManagerListener by lazy {
|
||||
object : RetroSessionManagerListener {
|
||||
|
@ -59,23 +67,6 @@ abstract class AbsCastActivity : AbsSlidingMusicPanelActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
playServicesAvailable = try {
|
||||
GoogleApiAvailability
|
||||
.getInstance().isGooglePlayServicesAvailable(this) == ConnectionResult.SUCCESS
|
||||
} catch (e: Exception) {
|
||||
false
|
||||
}
|
||||
if (playServicesAvailable) {
|
||||
setupCast()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupCast() {
|
||||
sessionManager = CastContext.getSharedInstance(this).sessionManager
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (playServicesAvailable) {
|
||||
|
|
|
@ -16,6 +16,7 @@ package code.name.monkey.retromusic.activities.base
|
|||
|
||||
import android.animation.ArgbEvaluator
|
||||
import android.animation.ValueAnimator
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.Color
|
||||
|
@ -26,11 +27,14 @@ import android.view.ViewTreeObserver
|
|||
import android.view.animation.PathInterpolator
|
||||
import android.widget.FrameLayout
|
||||
import androidx.core.animation.doOnEnd
|
||||
import androidx.core.view.*
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
import androidx.core.view.isGone
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.view.updateLayoutParams
|
||||
import androidx.fragment.app.commit
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.*
|
||||
import code.name.monkey.retromusic.activities.PermissionActivity
|
||||
import code.name.monkey.retromusic.databinding.SlidingMusicPanelLayoutBinding
|
||||
import code.name.monkey.retromusic.extensions.*
|
||||
import code.name.monkey.retromusic.fragments.LibraryViewModel
|
||||
|
@ -76,13 +80,13 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
private var windowInsets: WindowInsetsCompat? = null
|
||||
protected val libraryViewModel by viewModel<LibraryViewModel>()
|
||||
private lateinit var bottomSheetBehavior: BottomSheetBehavior<FrameLayout>
|
||||
private var playerFragment: AbsPlayerFragment? = null
|
||||
private lateinit var playerFragment: AbsPlayerFragment
|
||||
private var miniPlayerFragment: MiniPlayerFragment? = null
|
||||
private var nowPlayingScreen: NowPlayingScreen? = null
|
||||
private var taskColor: Int = 0
|
||||
private var paletteColor: Int = Color.WHITE
|
||||
private var navigationBarColor = 0
|
||||
protected abstract fun createContentView(): SlidingMusicPanelLayoutBinding
|
||||
|
||||
private val panelState: Int
|
||||
get() = bottomSheetBehavior.state
|
||||
private lateinit var binding: SlidingMusicPanelLayoutBinding
|
||||
|
@ -91,45 +95,47 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
private var navigationBarColorAnimator: ValueAnimator? = null
|
||||
private val argbEvaluator: ArgbEvaluator = ArgbEvaluator()
|
||||
|
||||
private val bottomSheetCallbackList = object : BottomSheetCallback() {
|
||||
private val bottomSheetCallbackList by lazy {
|
||||
object : BottomSheetCallback() {
|
||||
|
||||
override fun onSlide(bottomSheet: View, slideOffset: Float) {
|
||||
setMiniPlayerAlphaProgress(slideOffset)
|
||||
navigationBarColorAnimator?.cancel()
|
||||
setNavigationBarColorPreOreo(
|
||||
argbEvaluator.evaluate(
|
||||
slideOffset,
|
||||
surfaceColor(),
|
||||
navigationBarColor
|
||||
) as Int
|
||||
)
|
||||
}
|
||||
override fun onSlide(bottomSheet: View, slideOffset: Float) {
|
||||
setMiniPlayerAlphaProgress(slideOffset)
|
||||
navigationBarColorAnimator?.cancel()
|
||||
setNavigationBarColorPreOreo(
|
||||
argbEvaluator.evaluate(
|
||||
slideOffset,
|
||||
surfaceColor(),
|
||||
navigationBarColor
|
||||
) as Int
|
||||
)
|
||||
}
|
||||
|
||||
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
||||
when (newState) {
|
||||
STATE_EXPANDED -> {
|
||||
onPanelExpanded()
|
||||
if (PreferenceUtil.lyricsScreenOn && PreferenceUtil.showLyrics) {
|
||||
keepScreenOn(true)
|
||||
override fun onStateChanged(bottomSheet: View, newState: Int) {
|
||||
when (newState) {
|
||||
STATE_EXPANDED -> {
|
||||
onPanelExpanded()
|
||||
if (PreferenceUtil.lyricsScreenOn && PreferenceUtil.showLyrics) {
|
||||
keepScreenOn(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
STATE_COLLAPSED -> {
|
||||
onPanelCollapsed()
|
||||
if ((PreferenceUtil.lyricsScreenOn && PreferenceUtil.showLyrics) || !PreferenceUtil.isScreenOnEnabled) {
|
||||
keepScreenOn(false)
|
||||
STATE_COLLAPSED -> {
|
||||
onPanelCollapsed()
|
||||
if ((PreferenceUtil.lyricsScreenOn && PreferenceUtil.showLyrics) || !PreferenceUtil.isScreenOnEnabled) {
|
||||
keepScreenOn(false)
|
||||
}
|
||||
}
|
||||
}
|
||||
STATE_SETTLING, STATE_DRAGGING -> {
|
||||
if (fromNotification) {
|
||||
binding.bottomNavigationView.bringToFront()
|
||||
fromNotification = false
|
||||
STATE_SETTLING, STATE_DRAGGING -> {
|
||||
if (fromNotification) {
|
||||
binding.bottomNavigationView.bringToFront()
|
||||
fromNotification = false
|
||||
}
|
||||
}
|
||||
STATE_HIDDEN -> {
|
||||
MusicPlayerRemote.clearQueue()
|
||||
}
|
||||
else -> {
|
||||
println("Do a flip")
|
||||
}
|
||||
}
|
||||
STATE_HIDDEN -> {
|
||||
MusicPlayerRemote.clearQueue()
|
||||
}
|
||||
else -> {
|
||||
println("Do a flip")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -139,12 +145,14 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
binding = createContentView()
|
||||
if (!hasPermissions()) {
|
||||
startActivity(Intent(this, PermissionActivity::class.java))
|
||||
finish()
|
||||
}
|
||||
binding = SlidingMusicPanelLayoutBinding.inflate(layoutInflater)
|
||||
setContentView(binding.root)
|
||||
ViewCompat.setOnApplyWindowInsetsListener(
|
||||
binding.root
|
||||
) { _, insets ->
|
||||
windowInsets = insets
|
||||
binding.root.setOnApplyWindowInsetsListener { _, insets ->
|
||||
windowInsets = WindowInsetsCompat.toWindowInsetsCompat(insets)
|
||||
insets
|
||||
}
|
||||
chooseFragmentForTheme()
|
||||
|
@ -197,8 +205,8 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
chooseFragmentForTheme()
|
||||
onServiceConnected()
|
||||
}
|
||||
SWIPE_ANYWHERE_NOW_PLAYING ->{
|
||||
playerFragment?.onResume()
|
||||
SWIPE_ANYWHERE_NOW_PLAYING -> {
|
||||
playerFragment.onResume()
|
||||
}
|
||||
ADAPTIVE_COLOR_APP -> {
|
||||
if (PreferenceUtil.nowPlayingScreen in listOf(Normal, Material, Flat)) {
|
||||
|
@ -225,10 +233,6 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
}
|
||||
}
|
||||
|
||||
protected fun wrapSlidingMusicPanel(): SlidingMusicPanelLayoutBinding {
|
||||
return SlidingMusicPanelLayoutBinding.inflate(layoutInflater)
|
||||
}
|
||||
|
||||
fun collapsePanel() {
|
||||
bottomSheetBehavior.state = STATE_COLLAPSED
|
||||
}
|
||||
|
@ -331,7 +335,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
}
|
||||
|
||||
private fun handleBackPress(): Boolean {
|
||||
if (bottomSheetBehavior.peekHeight != 0 && playerFragment!!.onBackPressed()) return true
|
||||
if (bottomSheetBehavior.peekHeight != 0 && playerFragment.onBackPressed()) return true
|
||||
if (panelState == STATE_EXPANDED) {
|
||||
collapsePanel()
|
||||
return true
|
||||
|
@ -486,7 +490,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
private fun chooseFragmentForTheme() {
|
||||
nowPlayingScreen = PreferenceUtil.nowPlayingScreen
|
||||
|
||||
val fragment: Fragment = when (nowPlayingScreen) {
|
||||
val fragment: AbsPlayerFragment = when (nowPlayingScreen) {
|
||||
Blur -> BlurPlayerFragment()
|
||||
Adaptive -> AdaptiveFragment()
|
||||
Normal -> PlayerFragment()
|
||||
|
@ -510,8 +514,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(),
|
|||
supportFragmentManager.commit {
|
||||
replace(R.id.playerFragmentContainer, fragment)
|
||||
}
|
||||
supportFragmentManager.executePendingTransactions()
|
||||
playerFragment = whichFragment<AbsPlayerFragment>(R.id.playerFragmentContainer)
|
||||
playerFragment = fragment
|
||||
miniPlayerFragment = whichFragment<MiniPlayerFragment>(R.id.miniPlayerFragment)
|
||||
miniPlayerFragment?.view?.setOnClickListener { expandPanel() }
|
||||
}
|
||||
|
|
|
@ -25,6 +25,7 @@ import code.name.monkey.appthemehelper.util.VersionUtils
|
|||
import code.name.monkey.retromusic.BLUETOOTH_PLAYBACK
|
||||
import code.name.monkey.retromusic.EQUALIZER
|
||||
import code.name.monkey.retromusic.R
|
||||
import code.name.monkey.retromusic.activities.base.AbsBaseActivity.Companion.BLUETOOTH_PERMISSION_REQUEST
|
||||
import code.name.monkey.retromusic.util.NavigationUtil
|
||||
|
||||
/**
|
||||
|
@ -52,7 +53,7 @@ class AudioSettings : AbsSettingsFragment() {
|
|||
BLUETOOTH_CONNECT) != PERMISSION_GRANTED
|
||||
) {
|
||||
ActivityCompat.requestPermissions(requireActivity(), arrayOf(
|
||||
BLUETOOTH_CONNECT), 100)
|
||||
BLUETOOTH_CONNECT), BLUETOOTH_PERMISSION_REQUEST)
|
||||
}
|
||||
}
|
||||
return@setOnPreferenceChangeListener true
|
||||
|
|
|
@ -28,43 +28,45 @@ import dev.chrisbanes.insetter.applyInsetter
|
|||
class BottomNavigationBarTinted @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
defStyleAttr: Int = 0,
|
||||
) : BottomNavigationView(context, attrs, defStyleAttr) {
|
||||
|
||||
init {
|
||||
// If we are in Immersive mode we have to just set empty OnApplyWindowInsetsListener as
|
||||
// bottom, start, and end padding is always applied (with the help of OnApplyWindowInsetsListener) to
|
||||
// BottomNavigationView to dodge the system navigation bar (so we basically clear that listener).
|
||||
if (PreferenceUtil.isFullScreenMode) {
|
||||
setOnApplyWindowInsetsListener { _, insets ->
|
||||
insets
|
||||
}
|
||||
} else {
|
||||
applyInsetter {
|
||||
type(navigationBars = true) {
|
||||
padding(vertical = true)
|
||||
margin(horizontal = true)
|
||||
if (!isInEditMode) {
|
||||
// If we are in Immersive mode we have to just set empty OnApplyWindowInsetsListener as
|
||||
// bottom, start, and end padding is always applied (with the help of OnApplyWindowInsetsListener) to
|
||||
// BottomNavigationView to dodge the system navigation bar (so we basically clear that listener).
|
||||
if (PreferenceUtil.isFullScreenMode) {
|
||||
setOnApplyWindowInsetsListener { _, insets ->
|
||||
insets
|
||||
}
|
||||
} else {
|
||||
applyInsetter {
|
||||
type(navigationBars = true) {
|
||||
padding(vertical = true)
|
||||
margin(horizontal = true)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
labelVisibilityMode = PreferenceUtil.tabTitleMode
|
||||
labelVisibilityMode = PreferenceUtil.tabTitleMode
|
||||
|
||||
if (!PreferenceUtil.materialYou) {
|
||||
val iconColor = ATHUtil.resolveColor(context, android.R.attr.colorControlNormal)
|
||||
val accentColor = ThemeStore.accentColor(context)
|
||||
NavigationViewUtil.setItemIconColors(
|
||||
this,
|
||||
ColorUtil.withAlpha(iconColor, 0.5f),
|
||||
accentColor
|
||||
)
|
||||
NavigationViewUtil.setItemTextColors(
|
||||
this,
|
||||
ColorUtil.withAlpha(iconColor, 0.5f),
|
||||
accentColor
|
||||
)
|
||||
itemRippleColor = ColorStateList.valueOf(accentColor.addAlpha(0.08F))
|
||||
itemActiveIndicatorColor = ColorStateList.valueOf(accentColor.addAlpha(0.12F))
|
||||
if (!PreferenceUtil.materialYou) {
|
||||
val iconColor = ATHUtil.resolveColor(context, android.R.attr.colorControlNormal)
|
||||
val accentColor = ThemeStore.accentColor(context)
|
||||
NavigationViewUtil.setItemIconColors(
|
||||
this,
|
||||
ColorUtil.withAlpha(iconColor, 0.5f),
|
||||
accentColor
|
||||
)
|
||||
NavigationViewUtil.setItemTextColors(
|
||||
this,
|
||||
ColorUtil.withAlpha(iconColor, 0.5f),
|
||||
accentColor
|
||||
)
|
||||
itemRippleColor = ColorStateList.valueOf(accentColor.addAlpha(0.08F))
|
||||
itemActiveIndicatorColor = ColorStateList.valueOf(accentColor.addAlpha(0.12F))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ class InsetsConstraintLayout @JvmOverloads constructor(
|
|||
defStyleAttr: Int = 0
|
||||
) : ConstraintLayout(context, attrs, defStyleAttr) {
|
||||
init {
|
||||
if (!RetroUtil.isLandscape)
|
||||
if (!isInEditMode && !RetroUtil.isLandscape)
|
||||
drawAboveSystemBarsWithPadding()
|
||||
}
|
||||
}
|
|
@ -25,7 +25,8 @@
|
|||
app:behavior_peekHeight="0dp"
|
||||
app:enableEdgeToEdge="true"
|
||||
app:gestureInsetBottomIgnored="true"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
||||
tools:visibility="invisible">
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/playerFragmentContainer"
|
||||
|
@ -47,7 +48,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
android:elevation="0dp"
|
||||
android:minHeight="@dimen/bottom_nav_height"
|
||||
app:itemHorizontalTranslationEnabled="false"
|
||||
app:itemPaddingBottom="8dp"
|
||||
|
|
|
@ -79,12 +79,6 @@
|
|||
android:id="@+id/settings_fragment"
|
||||
android:name="code.name.monkey.retromusic.fragments.settings.SettingsFragment" />
|
||||
|
||||
<activity
|
||||
android:id="@+id/permissionFragment"
|
||||
android:name="code.name.monkey.retromusic.activities.PermissionActivity"
|
||||
android:label="PermissionFragment"
|
||||
tools:layout="@layout/activity_permission" />
|
||||
|
||||
<fragment
|
||||
android:id="@+id/action_album"
|
||||
android:name="code.name.monkey.retromusic.fragments.albums.AlbumsFragment"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue