From 2c4504bad39b896f63c4248b9cfc8996e7879035 Mon Sep 17 00:00:00 2001 From: sk Date: Thu, 1 Jun 2023 19:12:50 +0200 Subject: [PATCH] fix current fragment detection --- .../joinmastodon/android/MainActivity.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/MainActivity.java b/mastodon/src/main/java/org/joinmastodon/android/MainActivity.java index 8850e5f5c..fd43c387b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/MainActivity.java +++ b/mastodon/src/main/java/org/joinmastodon/android/MainActivity.java @@ -8,6 +8,8 @@ import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.util.Log; +import android.view.View; +import android.widget.FrameLayout; import org.joinmastodon.android.api.ObjectValidationException; import org.joinmastodon.android.api.session.AccountSession; @@ -28,8 +30,6 @@ import androidx.annotation.Nullable; import me.grishka.appkit.FragmentStackActivity; public class MainActivity extends FragmentStackActivity implements ProvidesAssistContent { - private Fragment currentFragment; - @Override protected void onCreate(@Nullable Bundle savedInstanceState){ UiUtils.setUserPreferredTheme(this); @@ -200,15 +200,20 @@ public class MainActivity extends FragmentStackActivity implements ProvidesAssis } } - @Override - public void showFragment(Fragment fragment) { - super.showFragment(fragment); - this.currentFragment = fragment; + public Fragment getCurrentFragment() { + for (int i = fragmentContainers.size() - 1; i >= 0; i--) { + FrameLayout fl = fragmentContainers.get(i); + if (fl.getVisibility() == View.VISIBLE) { + return getFragmentManager().findFragmentById(fl.getId()); + } + } + return null; } @Override public void onProvideAssistContent(AssistContent assistContent) { super.onProvideAssistContent(assistContent); - callFragmentToProvideAssistContent(currentFragment, assistContent); + Fragment fragment = getCurrentFragment(); + if (fragment != null) callFragmentToProvideAssistContent(fragment, assistContent); } }