From 58149077985f461c37d90e9e883e10e227108c1f Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Thu, 10 Sep 2020 15:53:03 -0600 Subject: [PATCH] Change LibraryFragment to Nav Fragment Change LibraryFragment to extend NavHostFragment, so that the child fragments arent as extensively nested as they were before. --- app/proguard-rules.pro | 2 +- .../oxycblt/auxio/library/LibraryFragment.kt | 32 ++------ .../auxio/{ => loading}/LoadingFragment.kt | 3 +- app/src/main/res/layout/activity_main.xml | 5 +- .../res/layout/fragment_artist_detail.xml | 3 +- app/src/main/res/layout/fragment_library.xml | 30 ------- .../main/res/layout/fragment_library_list.xml | 23 ++++-- app/src/main/res/layout/fragment_loading.xml | 5 +- app/src/main/res/layout/fragment_songs.xml | 3 +- app/src/main/res/layout/song_item.xml | 81 ------------------- 10 files changed, 37 insertions(+), 150 deletions(-) rename app/src/main/java/org/oxycblt/auxio/{ => loading}/LoadingFragment.kt (98%) delete mode 100644 app/src/main/res/layout/fragment_library.xml delete mode 100644 app/src/main/res/layout/song_item.xml diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index c86a273d7..0544a3bb3 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -21,4 +21,4 @@ #-renamesourcefileattribute SourceFile -dontobfuscate --keep class org.oxycblt.auxio.LoadingFragment \ No newline at end of file +-keep class org.oxycblt.auxio.loading.LoadingFragment \ No newline at end of file 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 c9191a95a..42c797c31 100644 --- a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt @@ -2,40 +2,22 @@ package org.oxycblt.auxio.library import android.os.Bundle import android.util.Log -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.activity.OnBackPressedCallback -import androidx.databinding.DataBindingUtil -import androidx.fragment.app.Fragment -import androidx.navigation.NavController import androidx.navigation.fragment.NavHostFragment import org.oxycblt.auxio.R -import org.oxycblt.auxio.databinding.FragmentLibraryBinding -class LibraryFragment : Fragment() { +class LibraryFragment : NavHostFragment() { - private var navController: NavController? = null - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - val binding = DataBindingUtil.inflate( - inflater, R.layout.fragment_library, container, false - ) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) requireActivity().onBackPressedDispatcher.addCallback( - viewLifecycleOwner, callback + this, callback ) - val navHost = childFragmentManager.findFragmentById(R.id.nav_host) as? NavHostFragment - navController = navHost?.navController + navController.setGraph(R.navigation.nav_library) Log.d(this::class.simpleName, "Fragment created.") - - return binding.root } override fun onResume() { @@ -55,7 +37,7 @@ class LibraryFragment : Fragment() { override fun handleOnBackPressed() { // If at the root of the navigation, perform onBackPressed from the main activity. - if (navController?.currentDestination?.id == navController?.graph?.startDestination) { + if (navController.currentDestination?.id == navController.graph.startDestination) { // Disable the callback as it will get caught in an infinite loop otherwise. isEnabled = false @@ -63,7 +45,7 @@ class LibraryFragment : Fragment() { isEnabled = true } else { - navController?.navigateUp() + navController.navigateUp() } } } diff --git a/app/src/main/java/org/oxycblt/auxio/LoadingFragment.kt b/app/src/main/java/org/oxycblt/auxio/loading/LoadingFragment.kt similarity index 98% rename from app/src/main/java/org/oxycblt/auxio/LoadingFragment.kt rename to app/src/main/java/org/oxycblt/auxio/loading/LoadingFragment.kt index a9425929c..3a90ef483 100644 --- a/app/src/main/java/org/oxycblt/auxio/LoadingFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/loading/LoadingFragment.kt @@ -1,4 +1,4 @@ -package org.oxycblt.auxio +package org.oxycblt.auxio.loading import android.Manifest import android.content.pm.PackageManager @@ -13,6 +13,7 @@ import androidx.core.content.ContextCompat import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import org.oxycblt.auxio.R import org.oxycblt.auxio.databinding.FragmentLoadingBinding import org.oxycblt.auxio.music.MusicViewModel import org.oxycblt.auxio.music.processing.MusicLoaderResponse diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index b7a2822e9..44da82c55 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -12,7 +12,8 @@ + android:layout_height="match_parent" + android:animateLayoutChanges="true"> + android:orientation="vertical" + android:animateLayoutChanges="true"> - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_library_list.xml b/app/src/main/res/layout/fragment_library_list.xml index 0f897bd67..8c75e7eea 100644 --- a/app/src/main/res/layout/fragment_library_list.xml +++ b/app/src/main/res/layout/fragment_library_list.xml @@ -3,16 +3,29 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> - + android:layout_height="match_parent" + android:orientation="vertical" + android:animateLayoutChanges="true"> + + + tools:listitem="@layout/item_artist" /> - + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_loading.xml b/app/src/main/res/layout/fragment_loading.xml index 83c3430d8..584c771ce 100644 --- a/app/src/main/res/layout/fragment_loading.xml +++ b/app/src/main/res/layout/fragment_loading.xml @@ -3,8 +3,6 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android"> - - + android:layout_height="match_parent" + android:animateLayoutChanges="true"> + android:orientation="vertical" + android:animateLayoutChanges="true"> - - - - - - - - - - - - - - - - - - - \ No newline at end of file