diff --git a/app/build.gradle b/app/build.gradle index ac26f5996..94d0d6bb7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,6 @@ dependencies { implementation fileTree(dir: "libs", include: ["*.jar"]) // Kotlin - // TODO: Move to kotlin 1.5.0 when they actually release it implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" diff --git a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt index 4b8a50364..9e844c332 100644 --- a/app/src/main/java/org/oxycblt/auxio/MainFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/MainFragment.kt @@ -19,7 +19,6 @@ import org.oxycblt.auxio.detail.DetailViewModel import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.playback.PlaybackViewModel import org.oxycblt.auxio.ui.Accent -import org.oxycblt.auxio.ui.fixAnimInfoLeak import org.oxycblt.auxio.ui.isLandscape import org.oxycblt.auxio.ui.isTablet import org.oxycblt.auxio.ui.toColor @@ -107,12 +106,6 @@ class MainFragment : Fragment() { return binding.root } - override fun onDestroyView() { - super.onDestroyView() - - fixAnimInfoLeak() - } - /** * Custom navigator code that has proper animations, unlike BottomNavigationView.setupWithNavController(). */ diff --git a/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt b/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt index cef8ec2e8..53adcdf62 100644 --- a/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/detail/DetailFragment.kt @@ -11,7 +11,6 @@ import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.databinding.FragmentDetailBinding import org.oxycblt.auxio.playback.PlaybackViewModel -import org.oxycblt.auxio.ui.fixAnimInfoLeak import org.oxycblt.auxio.ui.isLandscape import org.oxycblt.auxio.ui.memberBinding @@ -41,12 +40,6 @@ abstract class DetailFragment : Fragment() { callback.isEnabled = false } - override fun onDestroyView() { - super.onDestroyView() - - fixAnimInfoLeak() - } - /** * Shortcut method for doing setup of the detail toolbar. * @param menu Menu resource to use 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 c083e2012..dd08cbba3 100644 --- a/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/library/LibraryFragment.kt @@ -17,7 +17,6 @@ import org.oxycblt.auxio.music.Artist import org.oxycblt.auxio.music.Genre import org.oxycblt.auxio.music.Parent import org.oxycblt.auxio.music.Song -import org.oxycblt.auxio.ui.fixAnimInfoLeak import org.oxycblt.auxio.ui.getSpans import org.oxycblt.auxio.ui.newMenu @@ -96,12 +95,6 @@ class LibraryFragment : Fragment() { libraryModel.setNavigating(false) } - override fun onDestroyView() { - super.onDestroyView() - - fixAnimInfoLeak() - } - /** * Navigate to the detail UI for a [parent]. */ diff --git a/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt b/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt index 6d7e4a90d..dcb60d736 100644 --- a/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/search/SearchFragment.kt @@ -22,7 +22,6 @@ import org.oxycblt.auxio.music.Genre import org.oxycblt.auxio.music.Header import org.oxycblt.auxio.music.Song import org.oxycblt.auxio.playback.PlaybackViewModel -import org.oxycblt.auxio.ui.fixAnimInfoLeak import org.oxycblt.auxio.ui.getSpans import org.oxycblt.auxio.ui.newMenu @@ -127,12 +126,6 @@ class SearchFragment : Fragment() { searchModel.setNavigating(false) } - override fun onDestroyView() { - super.onDestroyView() - - fixAnimInfoLeak() - } - /** * Function that handles when an [item] is selected. * Handles all datatypes that are selectable. diff --git a/app/src/main/java/org/oxycblt/auxio/songs/SongsFragment.kt b/app/src/main/java/org/oxycblt/auxio/songs/SongsFragment.kt index 06ad68c64..50778f756 100644 --- a/app/src/main/java/org/oxycblt/auxio/songs/SongsFragment.kt +++ b/app/src/main/java/org/oxycblt/auxio/songs/SongsFragment.kt @@ -12,7 +12,6 @@ import org.oxycblt.auxio.databinding.FragmentSongsBinding import org.oxycblt.auxio.logD import org.oxycblt.auxio.music.MusicStore import org.oxycblt.auxio.playback.PlaybackViewModel -import org.oxycblt.auxio.ui.fixAnimInfoLeak import org.oxycblt.auxio.ui.getSpans import org.oxycblt.auxio.ui.newMenu @@ -67,12 +66,6 @@ class SongsFragment : Fragment() { return binding.root } - override fun onDestroyView() { - super.onDestroyView() - - fixAnimInfoLeak() - } - /** * Dumb shortcut for getting the first letter in a string, while regarding certain * semantics when it comes to articles. 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 2c24a62cf..a10c50c18 100644 --- a/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt +++ b/app/src/main/java/org/oxycblt/auxio/ui/InterfaceUtils.kt @@ -13,7 +13,6 @@ import android.os.Looper import android.util.DisplayMetrics import android.util.TypedValue import android.view.LayoutInflater -import android.view.View import android.view.WindowManager import android.widget.ImageButton import android.widget.TextView @@ -25,7 +24,6 @@ import androidx.annotation.DrawableRes import androidx.annotation.PluralsRes import androidx.annotation.StringRes import androidx.core.content.ContextCompat -import androidx.fragment.app.Fragment import androidx.recyclerview.widget.RecyclerView import org.oxycblt.auxio.R import org.oxycblt.auxio.logE @@ -258,20 +256,3 @@ private fun isSystemBarOnBottom(activity: Activity): Boolean { return (!canMove || width < height) } - -// --- HACKY NIGHTMARES --- - -/** - * Use ***REFLECTION*** to fix a memory leak in the [Fragment] source code where the focused view - * will never be cleared. I can't believe I have to do this. - */ -fun Fragment.fixAnimInfoLeak() { - try { - Fragment::class.java.getDeclaredMethod("setFocusedView", View::class.java).apply { - isAccessible = true - invoke(this@fixAnimInfoLeak, null) - } - } catch (e: Exception) { - logE("mAnimationInfo leak fix failed.") - } -} diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index d87d155a2..1f6ce920a 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -24,16 +24,15 @@ 0dp com.google.android.material.theme.MaterialComponentsViewInflater - - @style/Theme.CustomDialog @style/ThemeOverlay.MaterialComponents.Dialog.Alert - - + @style/Theme.CustomDialog +