diff --git a/app/src/main/assets/html/changelogs.html b/app/src/main/assets/html/changelogs.html index dcdbeeb29..af0c9ceba 100644 --- a/app/src/main/assets/html/changelogs.html +++ b/app/src/main/assets/html/changelogs.html @@ -39,6 +39,9 @@

Bug Fixes

  • Fixed header overlapping with the list in Preferences.
  • Fixed various animations still playing when Reduce Animations is toggled.
  • Fixed charts not appearing when Reduce Animations is toggled.
  • +
  • Fixed buttons in Installer not hiding itself when Static Background is on in + Accessibility Preferences. +
  • Various minor fixes.
  • diff --git a/app/src/main/java/app/simple/inure/decorations/ripple/DynamicRippleTextView.java b/app/src/main/java/app/simple/inure/decorations/ripple/DynamicRippleTextView.java index 049a3c299..8b91beca1 100644 --- a/app/src/main/java/app/simple/inure/decorations/ripple/DynamicRippleTextView.java +++ b/app/src/main/java/app/simple/inure/decorations/ripple/DynamicRippleTextView.java @@ -105,11 +105,12 @@ public boolean onTouchEvent(MotionEvent event) { .scaleY(1F) .scaleX(1F) .alpha(1F) - .setStartDelay(50) .setInterpolator(new LinearOutSlowInInterpolator()) .setDuration(getResources().getInteger(R.integer.animation_duration)) .start(); } + + return super.onTouchEvent(event); } } return super.onTouchEvent(event); diff --git a/app/src/main/java/app/simple/inure/decorations/views/FloatingMenuRecyclerView.java b/app/src/main/java/app/simple/inure/decorations/views/FloatingMenuRecyclerView.java index c5723e2c1..2fa153115 100644 --- a/app/src/main/java/app/simple/inure/decorations/views/FloatingMenuRecyclerView.java +++ b/app/src/main/java/app/simple/inure/decorations/views/FloatingMenuRecyclerView.java @@ -42,6 +42,7 @@ public class FloatingMenuRecyclerView extends CustomHorizontalRecyclerView { private static final String TAG = "BottomMenuRecyclerView"; private int containerHeight; private int displayWidth; + private int postTranslationY = 0; private boolean isScrollListenerAdded = false; private boolean isInitialized = false; private boolean isBottomMenuVisible = true; @@ -141,6 +142,8 @@ public void initBottomMenu(ArrayList > bottomMenuItems, } } } + + executePostTranslationY(); }); } @@ -332,6 +335,8 @@ public void setTranslationY(int dy) { if (getTranslationY() < containerHeight) { setTranslationY(getTranslationY() + dy); setTranslationY(RangesKt.coerceAtMost(getTranslationY(), containerHeight)); + } else { + setTranslationY(containerHeight); } } else { if (getTranslationY() > 0) { @@ -345,6 +350,20 @@ public void setInitialized(boolean initialized) { isInitialized = initialized; } + public void setPostTranslationY(int postTranslationY) { + this.postTranslationY = postTranslationY; + } + + public boolean isPostTranslationY() { + return postTranslationY != 0; + } + + private void executePostTranslationY() { + if (isPostTranslationY()) { + setTranslationY(postTranslationY); + } + } + public void clear() { setAdapter(null); } diff --git a/app/src/main/java/app/simple/inure/extensions/fragments/ScopedFragment.kt b/app/src/main/java/app/simple/inure/extensions/fragments/ScopedFragment.kt index 40dd2bfca..fe79b718e 100644 --- a/app/src/main/java/app/simple/inure/extensions/fragments/ScopedFragment.kt +++ b/app/src/main/java/app/simple/inure/extensions/fragments/ScopedFragment.kt @@ -133,6 +133,7 @@ abstract class ScopedFragment : Fragment(), SharedPreferences.OnSharedPreference super.onViewCreated(view, savedInstanceState) kotlin.runCatching { bottomRightCornerMenu = requireActivity().findViewById(R.id.bottom_menu) + bottomRightCornerMenu?.setPostTranslationY(requireArguments().getInt(BOTTOM_MENU_POSITION, 0)) } animateBlur() @@ -199,6 +200,12 @@ abstract class ScopedFragment : Fragment(), SharedPreferences.OnSharedPreference registerSharedPreferenceChangeListener() } + override fun onPause() { + super.onPause() + Log.d(TAG, "onPause: ${bottomRightCornerMenu?.translationY}") + requireArguments().putInt(BOTTOM_MENU_POSITION, bottomRightCornerMenu?.translationY?.toInt() ?: 0) + } + override fun onStop() { bottomRightCornerMenu?.clearAnimation() bottomRightCornerMenu?.gone() @@ -780,7 +787,7 @@ abstract class ScopedFragment : Fragment(), SharedPreferences.OnSharedPreference } } - @Suppress("unused", "UNUSED_VARIABLE") + @Suppress("unused", "UNUSED_VARIABLE", "UnusedReceiverParameter") @RequiresApi(Build.VERSION_CODES.R) protected fun View.setKeyboardChangeListener() { val cb = object : WindowInsetsAnimation.Callback(DISPATCH_MODE_STOP) { @@ -868,5 +875,6 @@ abstract class ScopedFragment : Fragment(), SharedPreferences.OnSharedPreference private const val MAX_WINDOW_HEIGHT = 5 private const val TAG = "ScopedFragment" + private const val BOTTOM_MENU_POSITION = "bottom_menu_position" } } diff --git a/app/src/main/java/app/simple/inure/ui/panels/Installer.kt b/app/src/main/java/app/simple/inure/ui/panels/Installer.kt index 794ff0584..d6c695f80 100644 --- a/app/src/main/java/app/simple/inure/ui/panels/Installer.kt +++ b/app/src/main/java/app/simple/inure/ui/panels/Installer.kt @@ -248,7 +248,7 @@ class Installer : ScopedFragment(), InstallerCallbacks { update.gone() uninstall.gone() launch.gone() - installerViewModel.install(null) + installerViewModel.install() } } else { loader.visible(true) @@ -256,7 +256,7 @@ class Installer : ScopedFragment(), InstallerCallbacks { update.gone() uninstall.gone() launch.gone() - installerViewModel.install(null) + installerViewModel.install() } } diff --git a/app/src/main/java/app/simple/inure/viewmodels/installer/InstallerViewModel.kt b/app/src/main/java/app/simple/inure/viewmodels/installer/InstallerViewModel.kt index 45868d3c7..6aa31fea8 100644 --- a/app/src/main/java/app/simple/inure/viewmodels/installer/InstallerViewModel.kt +++ b/app/src/main/java/app/simple/inure/viewmodels/installer/InstallerViewModel.kt @@ -289,7 +289,7 @@ class InstallerViewModel(application: Application, private val uri: Uri?, val fi } } - fun install(user: User?) { + fun install(user: User? = null) { this.user = user if (ConfigurationPreferences.isUsingShizuku() || ConfigurationPreferences.isUsingRoot()) { @@ -313,7 +313,8 @@ class InstallerViewModel(application: Application, private val uri: Uri?, val fi try { val uris = files!!.map { file -> - FileProvider.getUriForFile(applicationContext(), "${applicationContext().packageName}.provider", file) + FileProvider.getUriForFile( + applicationContext(), "${applicationContext().packageName}.provider", file) } val packageInstaller = PackageInstaller()