diff --git a/AuxioTODO b/AuxioTODO
index 848b95fe8..47a74a41d 100644
--- a/AuxioTODO
+++ b/AuxioTODO
@@ -24,18 +24,13 @@ TODOs surrounded with !s are things I tried to do, but failed for reasons includ
/library/
- Exit functionality
-- ? Remove gap from where I removed the overflow menu ?
- ? Add icons to overflow menu items ?
-- ? Implement filtering for search [Will resolve gap issue] ?
-- ? Move into ViewPager ?
+- ? Add Nested Nav to Library ViewPager fragment [Hold fire on this until everything else is added, there could be sneaky bugs later on if you add it now] ?
- ! Move Adapter functionality to ListAdapter [RecyclerView scrolls to middle/bottom when data is re-sorted] !
/bugs/
- Fix issue where fast navigations will cause the app to not display anything
-/other/
-- Standardize fragment init
-
To be added:
/prefs/
/playback/
\ No newline at end of file
diff --git a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt
index 31d8f486a..efac9d8a8 100644
--- a/app/src/main/java/org/oxycblt/auxio/MainActivity.kt
+++ b/app/src/main/java/org/oxycblt/auxio/MainActivity.kt
@@ -5,7 +5,6 @@ import android.os.Bundle
import android.util.AttributeSet
import android.view.View
import androidx.appcompat.app.AppCompatActivity
-import androidx.core.app.ActivityCompat
import org.oxycblt.auxio.theme.accent
class MainActivity : AppCompatActivity() {
@@ -19,7 +18,6 @@ class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- ActivityCompat.postponeEnterTransition(this)
setContentView(R.layout.activity_main)
}
}
diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt
index 70ff7e692..a0ce81261 100644
--- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt
+++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt
@@ -7,11 +7,14 @@ import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
+import androidx.fragment.app.activityViewModels
+import androidx.navigation.fragment.findNavController
import androidx.viewpager2.adapter.FragmentStateAdapter
import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
import org.oxycblt.auxio.databinding.FragmentMainBinding
import org.oxycblt.auxio.library.LibraryFragment
+import org.oxycblt.auxio.music.MusicViewModel
import org.oxycblt.auxio.songs.SongsFragment
import org.oxycblt.auxio.theme.accent
import org.oxycblt.auxio.theme.getInactiveAlpha
@@ -19,6 +22,10 @@ import org.oxycblt.auxio.theme.getTransparentAccent
import org.oxycblt.auxio.theme.toColor
class MainFragment : Fragment() {
+ private val musicModel: MusicViewModel by activityViewModels {
+ MusicViewModel.Factory(requireActivity().application)
+ }
+
private val shownFragments = listOf(0, 1)
private val tabIcons = listOf(
@@ -33,6 +40,14 @@ class MainFragment : Fragment() {
): View? {
val binding = FragmentMainBinding.inflate(inflater)
+ // If musicModel was cleared while the app was closed [Likely due to Auxio being suspended
+ // in the background], then navigate back to loading to reload the music.
+ if (musicModel.response.value == null) {
+ findNavController().navigate(MainFragmentDirections.actionReturnToLoading())
+
+ return null
+ }
+
val colorActive = accent.first.toColor(requireContext())
val colorInactive = getTransparentAccent(
requireContext(),
diff --git a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt
index 52ba3f992..2d17cb16b 100644
--- a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt
+++ b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt
@@ -31,7 +31,10 @@ import org.oxycblt.auxio.theme.resolveAttr
class LibraryFragment : Fragment(), SearchView.OnQueryTextListener {
- private val musicModel: MusicViewModel by activityViewModels()
+ private val musicModel: MusicViewModel by activityViewModels {
+ MusicViewModel.Factory(requireActivity().application)
+ }
+
private val libraryModel: LibraryViewModel by activityViewModels()
override fun onCreateView(
diff --git a/app/src/main/java/org/oxycblt/auxio/theme/ThemeUtils.kt b/app/src/main/java/org/oxycblt/auxio/theme/ThemeUtils.kt
index 4fb6d6e42..e8d6f3a19 100644
--- a/app/src/main/java/org/oxycblt/auxio/theme/ThemeUtils.kt
+++ b/app/src/main/java/org/oxycblt/auxio/theme/ThemeUtils.kt
@@ -10,6 +10,7 @@ import android.view.MenuItem
import android.widget.ImageButton
import androidx.annotation.AttrRes
import androidx.annotation.ColorInt
+import androidx.annotation.ColorRes
import androidx.core.content.ContextCompat
import androidx.core.graphics.ColorUtils
import androidx.recyclerview.widget.DividerItemDecoration
@@ -43,7 +44,7 @@ val accent = ACCENTS[5]
// Get the transparent variant of a color int
@ColorInt
-fun getTransparentAccent(context: Context, color: Int, alpha: Int): Int {
+fun getTransparentAccent(context: Context, @ColorRes color: Int, alpha: Int): Int {
return ColorUtils.setAlphaComponent(
ContextCompat.getColor(context, color),
alpha
@@ -52,7 +53,7 @@ fun getTransparentAccent(context: Context, color: Int, alpha: Int): Int {
// Get the inactive transparency of an accent
@ColorInt
-fun getInactiveAlpha(color: Int): Int {
+fun getInactiveAlpha(@ColorRes color: Int): Int {
return if (color == R.color.yellow) 100 else 150
}
@@ -86,13 +87,14 @@ fun resolveAttr(context: Context, @AttrRes attr: Int): Int {
}
// Apply a color to a Menu Item
-fun MenuItem.applyColor(color: Int) {
+fun MenuItem.applyColor(@ColorRes color: Int) {
SpannableString(title).apply {
setSpan(ForegroundColorSpan(color), 0, length, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE)
title = this
}
}
+// Disable an ImageButton
fun ImageButton.disable(context: Context) {
imageTintList = ColorStateList.valueOf(
R.color.inactive_color.toColor(context)
diff --git a/app/src/main/res/navigation/nav_main.xml b/app/src/main/res/navigation/nav_main.xml
index 2466d4f3b..e05dd25a5 100644
--- a/app/src/main/res/navigation/nav_main.xml
+++ b/app/src/main/res/navigation/nav_main.xml
@@ -46,6 +46,11 @@
app:popEnterAnim="@anim/fragment_fade_enter"
app:popExitAnim="@anim/fragment_fade_exit"
app:destination="@id/genreDetailFragment" />
+