diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt index 4a147b5f0..4c6d80670 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/MainActivity.kt @@ -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) { diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt index 5e44d6f92..1ce4fff4f 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/PermissionActivity.kt @@ -63,7 +63,7 @@ class PermissionActivity : AbsMusicServiceActivity() { binding.bluetoothPermission.setButtonClick { ActivityCompat.requestPermissions(this, arrayOf(BLUETOOTH_CONNECT), - PERMISSION_REQUEST) + BLUETOOTH_PERMISSION_REQUEST) } } diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/PurchaseActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/PurchaseActivity.kt index 85072735e..2c795466d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/PurchaseActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/PurchaseActivity.kt @@ -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 diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/ShareInstagramStory.kt b/app/src/main/java/code/name/monkey/retromusic/activities/ShareInstagramStory.kt index 9ca6c4caf..444749211 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/ShareInstagramStory.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/ShareInstagramStory.kt @@ -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 diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/SupportDevelopmentActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/SupportDevelopmentActivity.kt index 511433043..b6420c8d2 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/SupportDevelopmentActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/SupportDevelopmentActivity.kt @@ -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 + objects: List, ) : RecyclerView.Adapter() { private var skuDetailsList: List = 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) } } diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsBaseActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsBaseActivity.kt index 20bc42fb9..303cc5434 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsBaseActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsBaseActivity.kt @@ -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 diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsCastActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsCastActivity.kt index e4939c49b..23d668a53 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsCastActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsCastActivity.kt @@ -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) { diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt index afcdba934..9bff94d81 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt @@ -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() private lateinit var bottomSheetBehavior: BottomSheetBehavior - 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(R.id.playerFragmentContainer) + playerFragment = fragment miniPlayerFragment = whichFragment(R.id.miniPlayerFragment) miniPlayerFragment?.view?.setOnClickListener { expandPanel() } } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AudioSettings.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AudioSettings.kt index 1dffcc857..17915712a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AudioSettings.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AudioSettings.kt @@ -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 diff --git a/app/src/main/java/code/name/monkey/retromusic/views/BottomNavigationBarTinted.kt b/app/src/main/java/code/name/monkey/retromusic/views/BottomNavigationBarTinted.kt index 2652da794..ada01196a 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/BottomNavigationBarTinted.kt +++ b/app/src/main/java/code/name/monkey/retromusic/views/BottomNavigationBarTinted.kt @@ -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)) + } } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt b/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt index a00be5a93..d0356cb58 100644 --- a/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt +++ b/app/src/main/java/code/name/monkey/retromusic/views/insets/InsetsConstraintLayout.kt @@ -12,7 +12,7 @@ class InsetsConstraintLayout @JvmOverloads constructor( defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr) { init { - if (!RetroUtil.isLandscape) + if (!isInEditMode && !RetroUtil.isLandscape) drawAboveSystemBarsWithPadding() } } \ No newline at end of file diff --git a/app/src/main/res/layout/sliding_music_panel_layout.xml b/app/src/main/res/layout/sliding_music_panel_layout.xml index 2c1838985..fc67d2327 100644 --- a/app/src/main/res/layout/sliding_music_panel_layout.xml +++ b/app/src/main/res/layout/sliding_music_panel_layout.xml @@ -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"> - -