From 96abece6dade994cbae815a842830e66f29ec890 Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 27 Jan 2023 11:02:18 +0100 Subject: [PATCH] Fix a crash --- .../ui/fragment/media/FragmentMedia.java | 2 +- .../fragment/media/FragmentMediaProfile.java | 2 +- .../timeline/FragmentMastodonTimeline.java | 2 +- .../mathjax/android/MathJaxView.java | 18 ++++++++++++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java index 498f6aea..68971097 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMedia.java @@ -96,7 +96,7 @@ public class FragmentMedia extends Fragment { return; } canSwipe = (binding.mediaPicture.getScale() == 1); - if (!canSwipe && !requireActivity().isFinishing() && isAdded()) { + if (!canSwipe && isAdded() && !requireActivity().isFinishing()) { if (!((MediaActivity) requireActivity()).getFullScreen()) { ((MediaActivity) requireActivity()).setFullscreen(true); } diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMediaProfile.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMediaProfile.java index ccf6a115..6e9a1466 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMediaProfile.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/media/FragmentMediaProfile.java @@ -91,7 +91,7 @@ public class FragmentMediaProfile extends Fragment { @Override public void federatedAccount(Account account) { - if (account != null && !requireActivity().isFinishing() && isAdded()) { + if (account != null && isAdded() && !requireActivity().isFinishing()) { accountId = account.id; accountsVM.getAccountStatuses(tempInstance, null, accountId, null, null, null, null, null, true, false, MastodonHelper.statusesPerCall(requireActivity())) .observe(getViewLifecycleOwner(), statuses -> initializeStatusesCommonView(statuses)); diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java index 5202d4c3..5b39387e 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -1067,7 +1067,7 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. @Override public void federatedAccount(Account account) { - if (account != null && !requireActivity().isFinishing() && isAdded()) { + if (account != null && isAdded() && !requireActivity().isFinishing()) { accountIDInRemoteInstance = account.id; accountsVM.getAccountStatuses(tempInstance, null, accountIDInRemoteInstance, null, null, null, null, null, false, true, MastodonHelper.statusesPerCall(requireActivity())) .observe(getViewLifecycleOwner(), pinnedStatuses -> accountsVM.getAccountStatuses(tempInstance, null, accountIDInRemoteInstance, null, null, null, exclude_replies, exclude_reblogs, media_only, false, MastodonHelper.statusesPerCall(requireActivity())) diff --git a/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java b/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java index a918cfa1..8754c5d2 100644 --- a/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java +++ b/mathjaxandroid/src/main/java/de/timfreiheit/mathjax/android/MathJaxView.java @@ -2,6 +2,7 @@ package de.timfreiheit.mathjax.android; import android.annotation.SuppressLint; +import android.app.ActivityManager; import android.content.Context; import android.content.res.TypedArray; import android.os.Build; @@ -90,6 +91,17 @@ public class MathJaxView extends FrameLayout { } } + public static String getProcessName(Context context) { + ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); + for (ActivityManager.RunningAppProcessInfo processInfo : manager.getRunningAppProcesses()) { + if (processInfo.pid == android.os.Process.myPid()) { + return processInfo.processName; + } + } + + return null; + } + @SuppressLint({"SetJavaScriptEnabled", "AddJavascriptInterface"}) private void init(Context context, AttributeSet attrSet, MathJaxConfig config) { mWebView = new WebView(context); @@ -155,6 +167,12 @@ public class MathJaxView extends FrameLayout { mWebView.setHorizontalScrollBarEnabled(horizontalScrollbarsEnabled); mWebView.setBackgroundColor(0); mWebView.getSettings().setLoadWithOverviewMode(true); + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { + String process = getProcessName(context); + if (!context.getPackageName().equals(process)) + WebView.setDataDirectorySuffix(process); + } } /**