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()