mirror of
https://github.com/KokaKiwi/BarInsta
synced 2025-12-12 06:56:31 +00:00
Add fragment manager destroyed checks. Fixes https://github.com/austinhuang0131/barinsta/issues/1068
This commit is contained in:
parent
ea2956f3ca
commit
af3670e3ec
3 changed files with 47 additions and 40 deletions
|
|
@ -12,9 +12,6 @@ import awais.instagrabber.interfaces.FetchListener;
|
|||
import awais.instagrabber.repositories.responses.Media;
|
||||
import awais.instagrabber.utils.NetworkUtils;
|
||||
import awais.instagrabber.utils.ResponseBodyUtils;
|
||||
//import awaisomereport.LogCollector;
|
||||
|
||||
//import static awais.instagrabber.utils.Utils.logCollector;
|
||||
|
||||
public final class PostFetcher extends AsyncTask<Void, Void, Media> {
|
||||
private static final String TAG = "PostFetcher";
|
||||
|
|
|
|||
|
|
@ -26,6 +26,7 @@ import androidx.appcompat.app.ActionBar;
|
|||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.content.PermissionChecker;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.navigation.NavController;
|
||||
import androidx.navigation.NavDirections;
|
||||
import androidx.navigation.fragment.NavHostFragment;
|
||||
|
|
@ -60,6 +61,7 @@ import awais.instagrabber.repositories.requests.StoryViewerOptions;
|
|||
import awais.instagrabber.repositories.responses.Hashtag;
|
||||
import awais.instagrabber.repositories.responses.Location;
|
||||
import awais.instagrabber.repositories.responses.Media;
|
||||
import awais.instagrabber.repositories.responses.User;
|
||||
import awais.instagrabber.utils.Constants;
|
||||
import awais.instagrabber.utils.CookieUtils;
|
||||
import awais.instagrabber.utils.DownloadUtils;
|
||||
|
|
@ -213,7 +215,9 @@ public class HashTagFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||
final View mainPostImage,
|
||||
final int position) {
|
||||
if (opening) return;
|
||||
if (TextUtils.isEmpty(feedModel.getUser().getUsername())) {
|
||||
final User user = feedModel.getUser();
|
||||
if (user == null) return;
|
||||
if (TextUtils.isEmpty(user.getUsername())) {
|
||||
opening = true;
|
||||
new PostFetcher(feedModel.getCode(), newFeedModel -> {
|
||||
opening = false;
|
||||
|
|
@ -231,7 +235,9 @@ public class HashTagFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||
builder.setSharedProfilePicElement(profilePicView)
|
||||
.setSharedMainPostElement(mainPostImage);
|
||||
}
|
||||
builder.build().show(getChildFragmentManager(), "post_view");
|
||||
final FragmentManager fragmentManager = getChildFragmentManager();
|
||||
if (fragmentManager.isDestroyed()) return;
|
||||
builder.build().show(fragmentManager, "post_view");
|
||||
opening = false;
|
||||
}
|
||||
};
|
||||
|
|
@ -403,8 +409,7 @@ public class HashTagFragment extends Fragment implements SwipeRefreshLayout.OnRe
|
|||
try {
|
||||
Toast.makeText(getContext(), R.string.error_loading_hashtag, Toast.LENGTH_SHORT).show();
|
||||
binding.swipeRefreshLayout.setEnabled(false);
|
||||
}
|
||||
catch (Exception ignored) {}
|
||||
} catch (Exception ignored) {}
|
||||
return;
|
||||
}
|
||||
setTitle();
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ import androidx.appcompat.app.ActionBar;
|
|||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.content.PermissionChecker;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.navigation.NavController;
|
||||
import androidx.navigation.NavDirections;
|
||||
import androidx.navigation.fragment.NavHostFragment;
|
||||
|
|
@ -56,6 +57,7 @@ import awais.instagrabber.models.enums.FavoriteType;
|
|||
import awais.instagrabber.repositories.requests.StoryViewerOptions;
|
||||
import awais.instagrabber.repositories.responses.Location;
|
||||
import awais.instagrabber.repositories.responses.Media;
|
||||
import awais.instagrabber.repositories.responses.User;
|
||||
import awais.instagrabber.utils.Constants;
|
||||
import awais.instagrabber.utils.CookieUtils;
|
||||
import awais.instagrabber.utils.DownloadUtils;
|
||||
|
|
@ -204,7 +206,9 @@ public class LocationFragment extends Fragment implements SwipeRefreshLayout.OnR
|
|||
final View mainPostImage,
|
||||
final int position) {
|
||||
if (opening) return;
|
||||
if (TextUtils.isEmpty(feedModel.getUser().getUsername())) {
|
||||
final User user = feedModel.getUser();
|
||||
if (user == null) return;
|
||||
if (TextUtils.isEmpty(user.getUsername())) {
|
||||
opening = true;
|
||||
new PostFetcher(feedModel.getCode(), newFeedModel -> {
|
||||
opening = false;
|
||||
|
|
@ -223,7 +227,9 @@ public class LocationFragment extends Fragment implements SwipeRefreshLayout.OnR
|
|||
builder.setSharedProfilePicElement(profilePicView)
|
||||
.setSharedMainPostElement(mainPostImage);
|
||||
}
|
||||
builder.build().show(getChildFragmentManager(), "post_view");
|
||||
final FragmentManager fragmentManager = getChildFragmentManager();
|
||||
if (fragmentManager.isDestroyed()) return;
|
||||
builder.build().show(fragmentManager, "post_view");
|
||||
opening = false;
|
||||
}
|
||||
};
|
||||
|
|
@ -399,8 +405,7 @@ public class LocationFragment extends Fragment implements SwipeRefreshLayout.OnR
|
|||
try {
|
||||
Toast.makeText(getContext(), R.string.error_loading_location, Toast.LENGTH_SHORT).show();
|
||||
binding.swipeRefreshLayout.setEnabled(false);
|
||||
}
|
||||
catch (Exception ignored) {}
|
||||
} catch (Exception ignored) {}
|
||||
return;
|
||||
}
|
||||
setTitle();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue