diff --git a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt index 92235b338..327938937 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt @@ -15,12 +15,15 @@ import org.oxycblt.auxio.playback.PlaybackService import org.oxycblt.auxio.settings.SettingsManager import org.oxycblt.auxio.ui.accent import org.oxycblt.auxio.ui.handleTransparentSystemBars +import org.oxycblt.auxio.ui.toColor // FIXME: Fix bug where fast navigation will break the animations and // lead to nothing being displayed [Possibly Un-fixable] // TODO: Landscape UI layouts // FIXME: Compat issue with Versions 5 that leads to progress bar looking off class MainActivity : AppCompatActivity() { + + @Suppress("DEPRECATION") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -45,13 +48,14 @@ class MainActivity : AppCompatActivity() { if (settingsManager.getEdgeToEdge() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) { window?.apply { statusBarColor = Color.TRANSPARENT + navigationBarColor = R.color.nav_color.toColor(this@MainActivity) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { Log.d(this::class.simpleName, "Doing R+ edge-to-edge.") setDecorFitsSystemWindows(false) - binding.root.setOnApplyWindowInsetsListener { v, insets -> + binding.root.setOnApplyWindowInsetsListener { _, insets -> WindowInsets.Builder() .setInsets( WindowInsets.Type.systemBars(), @@ -60,18 +64,13 @@ class MainActivity : AppCompatActivity() { .build() } } else { - Log.d(this::class.simpleName, "Doing deprec edge-to-edge.") + Log.d(this::class.simpleName, "Doing legacy edge-to-edge.") + binding.root.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_STABLE } - navigationBarColor = Color.TRANSPARENT - handleTransparentSystemBars(resources.configuration) - - // I barely know how insets work so here's another third party library - // that I think does things - // binding.root.applySystemWindowInsetsToMargin(top = false, bottom = false) } } } diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index 1f05107d5..904558bd8 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -120,7 +120,6 @@ class MainFragment : Fragment() { return binding.root } - // Functions that check if MainFragment should nav over to LibraryFragment, or whether // it should stay put. Mostly by checking if the navController is currently in a detail // fragment, and if the playing item is already being shown. diff --git a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueFragment.kt b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueFragment.kt index 161d18ad3..7f0c7b779 100644 --- a/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/playback/queue/QueueFragment.kt @@ -4,10 +4,12 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.appcompat.widget.Toolbar import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.ItemTouchHelper +import dev.chrisbanes.insetter.applySystemWindowInsetsToMargin import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentQueueBinding import org.oxycblt.auxio.music.BaseModel @@ -75,6 +77,12 @@ class QueueFragment : Fragment() { return binding.root } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + view.findViewById(R.id.queue_toolbar).applySystemWindowInsetsToMargin(top = true) + } + private fun createQueueData(): MutableList { val queue = mutableListOf() diff --git a/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt b/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt index e3ff7e21a..9fd552f04 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt @@ -1,5 +1,6 @@ package org.oxycblt.auxio.ui +import android.annotation.TargetApi import android.content.Context import android.content.res.ColorStateList import android.content.res.Configuration @@ -15,7 +16,6 @@ import android.widget.ImageButton import android.widget.Toast import androidx.annotation.ColorInt import androidx.annotation.MenuRes -import androidx.annotation.RequiresApi import androidx.appcompat.widget.PopupMenu import androidx.core.text.HtmlCompat import org.oxycblt.auxio.R @@ -76,7 +76,7 @@ fun Spanned.render(): Spanned { * Handle transparent system bars on light mode. Adapted from Music Player GO * (https://github.com/enricocid/Music-Player-GO) */ -@RequiresApi(Build.VERSION_CODES.O_MR1) +@TargetApi(Build.VERSION_CODES.O_MR1) @Suppress("DEPRECATION") fun Window.handleTransparentSystemBars(config: Configuration) { fun isNight() = config.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml index 5862e5163..b568cad44 100644 --- a/app/src/main/res/layout/fragment_main.xml +++ b/app/src/main/res/layout/fragment_main.xml @@ -11,6 +11,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:animateLayoutChanges="true" + android:fitsSystemWindows="true" android:orientation="vertical"> #484848 #404040 #ffffff + #01151515