From 139cf3c0895cb66390fe42846133f2648848a753 Mon Sep 17 00:00:00 2001 From: OxygenCobalt Date: Fri, 4 Sep 2020 14:39:51 -0600 Subject: [PATCH] Add basic transitions/animations Add animations to all LoadingFragment & a transition from LoadingFragment to MainFragment. --- app/build.gradle | 1 + .../org/oxycblt/auxio/loading/LoadingFragment.kt | 13 +++++++++---- .../java/org/oxycblt/auxio/music/MusicRepository.kt | 6 +++--- app/src/main/res/layout/album_item.xml | 1 + app/src/main/res/layout/fragment_loading.xml | 3 ++- app/src/main/res/layout/song_item.xml | 1 + app/src/main/res/transition/transition_to_main.xml | 4 ++++ app/src/main/res/values/strings.xml | 2 +- 8 files changed, 22 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/transition/transition_to_main.xml diff --git a/app/build.gradle b/app/build.gradle index dddf85266..dfd19bdef 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -66,6 +66,7 @@ dependencies { implementation "androidx.navigation:navigation-ui-ktx:$navigation_version" // --- THIRD PARTY --- + // Image loading implementation 'io.coil-kt:coil:0.12.0' diff --git a/app/src/main/java/org/oxycblt/auxio/loading/LoadingFragment.kt b/app/src/main/java/org/oxycblt/auxio/loading/LoadingFragment.kt index ef1625aa3..da5aa5128 100644 --- a/app/src/main/java/org/oxycblt/auxio/loading/LoadingFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/loading/LoadingFragment.kt @@ -3,6 +3,7 @@ package org.oxycblt.auxio.loading import android.Manifest import android.content.pm.PackageManager import android.os.Bundle +import android.transition.TransitionInflater import android.util.Log import android.view.LayoutInflater import android.view.View @@ -67,8 +68,9 @@ class LoadingFragment : Fragment(R.layout.fragment_loading) { // Set up the permission launcher, as its disallowed outside of onCreate. permLauncher = - registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted: Boolean -> - + registerForActivityResult( + ActivityResultContracts.RequestPermission() + ) { granted: Boolean -> // If its actually granted, restart the loading process again. if (granted) { wipeViews() @@ -92,8 +94,8 @@ class LoadingFragment : Fragment(R.layout.fragment_loading) { } // Check for two things: - // - If Auxio needs to show the rationale for getting the READ_EXTERNAL_STORAGE perm - // - If Auxio straight up doesnt have the permission + // - If Auxio needs to show the rationale for getting the READ_EXTERNAL_STORAGE permission. + // - If Auxio straight up doesn't have the READ_EXTERNAL_STORAGE permission. private fun checkPerms(): Boolean { return shouldShowRequestPermissionRationale( Manifest.permission.READ_EXTERNAL_STORAGE @@ -108,6 +110,9 @@ class LoadingFragment : Fragment(R.layout.fragment_loading) { repoResponse?.let { response -> if (response == MusicLoaderResponse.DONE) { + val inflater = TransitionInflater.from(requireContext()) + exitTransition = inflater.inflateTransition(R.transition.transition_to_main) + this.findNavController().navigate( LoadingFragmentDirections.actionToMain() ) diff --git a/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt b/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt index 0789eaa70..7fac22848 100644 --- a/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt +++ b/app/src/main/java/org/oxycblt/auxio/music/MusicRepository.kt @@ -34,9 +34,9 @@ class MusicRepository { loader.albums, loader.songs, - app.applicationContext.getString(R.string.placeholder_unknown_genre), - app.applicationContext.getString(R.string.placeholder_unknown_artist), - app.applicationContext.getString(R.string.placeholder_unknown_album) + app.getString(R.string.placeholder_unknown_genre), + app.getString(R.string.placeholder_unknown_artist), + app.getString(R.string.placeholder_unknown_album) ) songs = sorter.songs.toList() diff --git a/app/src/main/res/layout/album_item.xml b/app/src/main/res/layout/album_item.xml index 9ffda438b..207652fbd 100644 --- a/app/src/main/res/layout/album_item.xml +++ b/app/src/main/res/layout/album_item.xml @@ -13,6 +13,7 @@ + android:layout_height="match_parent" + android:animateLayoutChanges="true"> + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e6cdeb7fa..943b2de74 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -7,7 +7,7 @@ No music found. Music loading failed. - Auxio needs access to your music library. + Auxio needs permission to access to your music library. Retry Grant